diff --git a/src/Renamer.hs b/src/Renamer.hs index 744d9ad..b284e92 100644 --- a/src/Renamer.hs +++ b/src/Renamer.hs @@ -55,7 +55,7 @@ renameExp old_names = \case pure (Map.union env1 env2, EAdd e1' e2') ELet b e -> do - (new_names, b) <- renameLocalBind old_names b + (new_names, b) <- renameLocalBind old_names b (new_names', e') <- renameExp new_names e pure (new_names', ELet b e') diff --git a/src/TypeChecker.hs b/src/TypeChecker.hs index 380b009..1e44888 100644 --- a/src/TypeChecker.hs +++ b/src/TypeChecker.hs @@ -41,8 +41,8 @@ checkBind cxt b = (rhs', t_rhs) <- infer cxt rhs unless (typeEq t_rhs t) . throwError $ typeErr name t t_rhs pure $ T.Bind (name, t) (zip parms ts_parms) rhs' - where - ts_parms = fst $ partitionType (length parms) t + where + ts_parms = fst $ partitionType (length parms) t -- | @ f x y = rhs ⇒ f = \x.\y. rhs @ expandLambdas :: Bind -> Bind diff --git a/src/TypeCheckerIr.hs b/src/TypeCheckerIr.hs index 35b3712..f6e3ec6 100644 --- a/src/TypeCheckerIr.hs +++ b/src/TypeCheckerIr.hs @@ -20,25 +20,25 @@ data Exp | EApp Type Exp Exp | EAdd Type Exp Exp | EAbs Type Id Exp - deriving (C.Eq, C.Ord, C.Show, C.Read) + deriving (C.Eq, C.Ord, C.Show, C.Read) type Id = (Ident, Type) data Bind = Bind Id [Id] Exp - deriving (C.Eq, C.Ord, C.Show, C.Read) + deriving (C.Eq, C.Ord, C.Show, C.Read) instance Print Program where - prt i (Program sc) = prPrec i 0 $ prt 0 sc + prt i (Program sc) = prPrec i 0 $ prt 0 sc instance Print Bind where - prt i (Bind name@(n, _) parms rhs) = prPrec i 0 $ concatD - [ prtId 0 name - , doc $ showString ";" - , prt 0 n - , prtIdPs 0 parms - , doc $ showString "=" - , prt 0 rhs - ] + prt i (Bind name@(n, _) parms rhs) = prPrec i 0 $ concatD + [ prtId 0 name + , doc $ showString ";" + , prt 0 n + , prtIdPs 0 parms + , doc $ showString "=" + , prt 0 rhs + ] instance Print [Bind] where prt _ [] = concatD [] @@ -50,51 +50,51 @@ prtIdPs i = prPrec i 0 . concatD . map (prtIdP i) prtId :: Int -> Id -> Doc prtId i (name, t) = prPrec i 0 $ concatD - [ prt 0 name - , doc $ showString ":" - , prt 0 t - ] + [ prt 0 name + , doc $ showString ":" + , prt 0 t + ] prtIdP :: Int -> Id -> Doc prtIdP i (name, t) = prPrec i 0 $ concatD - [ doc $ showString "(" - , prt 0 name - , doc $ showString ":" - , prt 0 t - , doc $ showString ")" - ] + [ doc $ showString "(" + , prt 0 name + , doc $ showString ":" + , prt 0 t + , doc $ showString ")" + ] instance Print Exp where prt i = \case - EId n -> prPrec i 3 $ concatD [prtIdP 0 n] - EInt i1 -> prPrec i 3 $ concatD [prt 0 i1] - ELet bs e -> prPrec i 3 $ concatD - [ doc $ showString "let" - , prt 0 bs - , doc $ showString "in" - , prt 0 e - ] - EApp t e1 e2 -> prPrec i 2 $ concatD - [ doc $ showString "@" - , prt 0 t - , prt 2 e1 - , prt 3 e2 - ] - EAdd t e1 e2 -> prPrec i 1 $ concatD - [ doc $ showString "@" - , prt 0 t - , prt 1 e1 - , doc $ showString "+" - , prt 2 e2 - ] - EAbs t n e -> prPrec i 0 $ concatD - [ doc $ showString "@" - , prt 0 t - , doc $ showString "\\" - , prtIdP 0 n - , doc $ showString "." - , prt 0 e - ] + EId n -> prPrec i 3 $ concatD [prtIdP 0 n] + EInt i1 -> prPrec i 3 $ concatD [prt 0 i1] + ELet bs e -> prPrec i 3 $ concatD + [ doc $ showString "let" + , prt 0 bs + , doc $ showString "in" + , prt 0 e + ] + EApp t e1 e2 -> prPrec i 2 $ concatD + [ doc $ showString "@" + , prt 0 t + , prt 2 e1 + , prt 3 e2 + ] + EAdd t e1 e2 -> prPrec i 1 $ concatD + [ doc $ showString "@" + , prt 0 t + , prt 1 e1 + , doc $ showString "+" + , prt 2 e2 + ] + EAbs t n e -> prPrec i 0 $ concatD + [ doc $ showString "@" + , prt 0 t + , doc $ showString "\\" + , prtIdP 0 n + , doc $ showString "." + , prt 0 e + ]