From 060d48f9e18ac077bf3a5e50d02c26b59c6e9b82 Mon Sep 17 00:00:00 2001 From: crumbtoo Date: Tue, 2 Jan 2024 06:26:48 -0700 Subject: [PATCH] oh boy am i going to hate this code in 12 hours --- src/RLP/ParseDecls.hs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/RLP/ParseDecls.hs b/src/RLP/ParseDecls.hs index 4d18e22..376ef37 100644 --- a/src/RLP/ParseDecls.hs +++ b/src/RLP/ParseDecls.hs @@ -71,7 +71,8 @@ funD = FunD <$> varid <*> many pat1 <*> (symbol "=" *> fmap Const partialExpr) partialExpr :: Parser PartialExpr' partialExpr = choice - [ fmap Y $ U <$> varid' <*> lexeme infixOp <*> varid' + [ try $ fmap Y $ U <$> varid' <*> lexeme infixOp <*> fmap unY partialExpr + , fmap Y $ varid' ] where varid' = E . VarEF <$> varid @@ -128,6 +129,9 @@ type PartialDecl' = Decl (Const PartialExpr') Name newtype Y f = Y (f (Y f)) +unY :: Y f -> f (Y f) +unY (Y f) = f + instance (Show (f (Y f))) => Show (Y f) where showsPrec p (Y f) = showsPrec p f