* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*)
+ *)
(* Domtool configuration language type checking *)
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 resetUnif : unit -> unit
+ val newUnif : unit -> Ast.typ'
+
+ val preface : string * Print.PD.pp_desc -> unit
- val checkFile : env -> Ast.typ -> Ast.file -> env
+ val allowExterns : unit -> unit
+ val disallowExterns : unit -> unit
end