X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/8c57a89d75cc1d4fd050bd3767f9c881b1766c4a..e1b99e23f8d30efc7842ee006e0ff3ef0347b7df:/src/ast.sml diff --git a/src/ast.sml b/src/ast.sml index ba00f78..0e8688d 100644 --- a/src/ast.sml +++ b/src/ast.sml @@ -105,4 +105,17 @@ type file = string option * decl list * exp option fun multiApp (f, loc, args) = foldl (fn (arg, e) => (EApp (e, arg), loc)) f args +datatype unification_error = + UnifyPred of pred * pred + | UnifyTyp of typ * typ + | UnifyOccurs of string * typ + +exception Unify of unification_error + +datatype type_error = + WrongType of string * exp * typ * typ * unification_error option + | WrongForm of string * string * exp * typ * unification_error option + | UnboundVariable of string + | WrongPred of string * pred * pred + end