diff options
author | coq <coq@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2002-08-02 17:17:42 +0000 |
---|---|---|
committer | coq <coq@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2002-08-02 17:17:42 +0000 |
commit | 12965209478bd99dfbe57f07d5b525e51b903f22 (patch) | |
tree | 36a7f5e4802cd321caf02fed0be8349100be09fb /kernel/modops.mli | |
parent | 8b26fd6ba739d4f49fae99ed764b086022e44b50 (diff) |
Modules dans COQ\!\!\!\!
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@2957 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel/modops.mli')
-rw-r--r-- | kernel/modops.mli | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/kernel/modops.mli b/kernel/modops.mli new file mode 100644 index 000000000..240144785 --- /dev/null +++ b/kernel/modops.mli @@ -0,0 +1,79 @@ +(***********************************************************************) +(* v * The Coq Proof Assistant / The Coq Development Team *) +(* <O___,, * INRIA-Rocquencourt & LRI-CNRS-Orsay *) +(* \VV/ *************************************************************) +(* // * This file is distributed under the terms of the *) +(* * GNU Lesser General Public License Version 2.1 *) +(***********************************************************************) + +(*i $Id$ i*) + +(*i*) +open Names +open Univ +open Environ +open Declarations +open Entries +(*i*) + +(* Various operations on modules and module types *) + +(* recursively unfold MTBdent module types *) +val scrape_modtype : env -> module_type_body -> module_type_body + +(* make the environment entry out of type *) +val module_body_of_type : module_type_body -> module_body + +val module_body_of_spec : module_specification_body -> module_body + +val module_spec_of_body : module_body -> module_specification_body + + +val destr_functor : + module_type_body -> mod_bound_id * module_type_body * module_type_body + + +val subst_modtype : substitution -> module_type_body -> module_type_body + +val subst_signature_msid : + mod_self_id -> module_path -> + module_signature_body -> module_signature_body + +(* [add_signature mp sign env] assumes that the substitution [msid] + \mapsto [mp] has already been performed (or is not necessary, like + when [mp = MPself msid]) *) +val add_signature : + module_path -> module_signature_body -> env -> env + +(* adds a module and its components, but not the constraints *) +val add_module : + module_path -> module_body -> env -> env + +val check_modpath_equiv : env -> module_path -> module_path -> unit + +val error_existing_label : label -> 'a + +val error_declaration_not_path : module_expr -> 'a + +val error_application_to_not_path : module_expr -> 'a + +val error_not_a_functor : module_expr -> 'a + +val error_incompatible_modtypes : + module_type_body -> module_type_body -> 'a + +val error_not_match : label -> specification_body -> 'a + +val error_incompatible_labels : label -> label -> 'a + +val error_no_such_label : label -> 'a + +val error_result_must_be_signature : module_type_body -> 'a + +val error_no_module_to_end : unit -> 'a + +val error_no_modtype_to_end : unit -> 'a + +val error_not_a_modtype : string -> 'a + +val error_not_a_module : string -> 'a |