signature TYCHECK = sig
- type env
- val empty : env
+ val checkTyp : Env.env -> Ast.typ -> Ast.typ
- val checkTyp : env -> Ast.typ -> Ast.typ
-
- val checkExp : env -> Ast.exp -> Ast.typ
- val checkUnit : env -> Ast.exp -> Ast.typ
+ val checkExp : Env.env -> Ast.exp -> Ast.typ
+ val checkUnit : Env.env -> Ast.exp -> Ast.typ
(* [checkUnit] checks that all unification variables have been resolved. *)
- val checkDecl : env -> Ast.decl -> env
+ val checkDecl : Env.env -> Ast.decl -> Env.env
+
+ val checkFile : Env.env -> Ast.typ -> Ast.file -> Env.env
- val checkFile : env -> Ast.typ -> Ast.file -> env
+ val resetUnif : unit -> unit
+ val newUnif : unit -> Ast.typ'
end