diff options
Diffstat (limited to 'pretyping/typeclasses_errors.ml')
| -rw-r--r-- | pretyping/typeclasses_errors.ml | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/pretyping/typeclasses_errors.ml b/pretyping/typeclasses_errors.ml new file mode 100644 index 0000000000..980f327cb5 --- /dev/null +++ b/pretyping/typeclasses_errors.ml @@ -0,0 +1,42 @@ +(************************************************************************) +(* v * The Coq Proof Assistant / The Coq Development Team *) +(* <O___,, * CNRS-Ecole Polytechnique-INRIA Futurs-Universite Paris Sud *) +(* \VV/ **************************************************************) +(* // * This file is distributed under the terms of the *) +(* * GNU Lesser General Public License Version 2.1 *) +(************************************************************************) + +(*i $Id: classes.ml 6748 2005-02-18 22:17:50Z herbelin $ i*) + +(*i*) +open Names +open Decl_kinds +open Term +open Sign +open Evd +open Environ +open Nametab +open Mod_subst +open Topconstr +open Util +(*i*) + +type contexts = Parameters | Properties + +type typeclass_error = + | UnboundClass of identifier located + | UnboundMethod of identifier * identifier located (* Class name, method *) + | NoInstance of identifier located * constr list + | MismatchedContextInstance of contexts * constr_expr list * named_context (* found, expected *) + +exception TypeClassError of env * typeclass_error + +let typeclass_error env err = raise (TypeClassError (env, err)) + +let unbound_class env id = typeclass_error env (UnboundClass id) + +let unbound_method env cid id = typeclass_error env (UnboundMethod (cid, id)) + +let no_instance env id args = typeclass_error env (NoInstance (id, args)) + +let mismatched_ctx_inst env c n m = typeclass_error env (MismatchedContextInstance (c, n, m)) |
