RlpExpr LetE Rec

This commit is contained in:
crumbtoo
2024-01-23 21:24:14 -07:00
parent 3d45e12676
commit 5ce11dfdd7

View File

@@ -82,7 +82,7 @@ data Assoc = InfixL
data ConAlt = ConAlt ConId [Type] data ConAlt = ConAlt ConId [Type]
deriving Show deriving Show
data RlpExpr b = LetE [Bind b] (RlpExpr b) data RlpExpr b = LetE Rec [Bind b] (RlpExpr b)
| VarE VarId | VarE VarId
| ConE ConId | ConE ConId
| LamE [Pat b] (RlpExpr b) | LamE [Pat b] (RlpExpr b)
@@ -150,14 +150,14 @@ type RlpExprF' = RlpExprF Name
-- society if derivable Show1 -- society if derivable Show1
instance (Show b) => Show1 (RlpExprF b) where instance (Show b) => Show1 (RlpExprF b) where
liftShowsPrec sp _ p m = case m of liftShowsPrec sp _ p m = case m of
(LetEF bs e) -> showsBinaryWith showsPrec sp "LetEF" p bs e (LetEF r bs e) -> showsTernaryWith showsPrec showsPrec sp "LetEF" p r bs e
(VarEF n) -> showsUnaryWith showsPrec "VarEF" p n (VarEF n) -> showsUnaryWith showsPrec "VarEF" p n
(ConEF n) -> showsUnaryWith showsPrec "ConEF" p n (ConEF n) -> showsUnaryWith showsPrec "ConEF" p n
(LamEF bs e) -> showsBinaryWith showsPrec sp "LamEF" p bs e (LamEF bs e) -> showsBinaryWith showsPrec sp "LamEF" p bs e
(CaseEF e as) -> showsBinaryWith sp showsPrec "CaseEF" p e as (CaseEF e as) -> showsBinaryWith sp showsPrec "CaseEF" p e as
(IfEF a b c) -> showsTernaryWith sp sp sp "IfEF" p a b c (IfEF a b c) -> showsTernaryWith sp sp sp "IfEF" p a b c
(AppEF f x) -> showsBinaryWith sp sp "AppEF" p f x (AppEF f x) -> showsBinaryWith sp sp "AppEF" p f x
(LitEF l) -> showsUnaryWith showsPrec "LitEF" p l (LitEF l) -> showsUnaryWith showsPrec "LitEF" p l
showsTernaryWith :: (Int -> x -> ShowS) showsTernaryWith :: (Int -> x -> ShowS)
-> (Int -> y -> ShowS) -> (Int -> y -> ShowS)