variableStream = map toString [1..]
sem :: AST -> SemOutput
-sem (AST vd fd) = Right $ (AST vd fd, 'Map'.newMap)
+sem (AST fd) = Right $ (AST fd, 'Map'.newMap)
instance toString Scheme where
toString (Forall x t) = concat ["Forall ": map ((+++) "\n") x] +++ toString t
infer (IntExpr _ _) = pure IntType
infer (CharExpr _ _) = pure CharType
infer (BoolExpr _ _) = pure BoolType
- infer (FunExpr _ fc) = undef
+ infer (FunExpr _ _ _ _) = undef
infer (EmptyListExpr _) = undef
infer (TupleExpr _ (e1, e2)) =
infer e1 >>= \et1->infer e2 >>= \et2->pure $ TupleType (et1, et2)