aboutsummaryrefslogtreecommitdiffhomepage
path: root/library/declaremods.mli
diff options
context:
space:
mode:
authorGravatar letouzey <letouzey@85f007b7-540e-0410-9357-904b9bb8a0f7>2009-11-18 00:03:14 +0000
committerGravatar letouzey <letouzey@85f007b7-540e-0410-9357-904b9bb8a0f7>2009-11-18 00:03:14 +0000
commit2ddd0afea124874576b1468c3ce5830352be4322 (patch)
tree5e49b6d68d695e89c861a13f860d76916c544051 /library/declaremods.mli
parentdf89fbc8ac8d0d485c1a373cb4edbb1835e2c4ad (diff)
Module subtyping : allow many <: and module type declaration with <:
Any place where <: was legal can now contain many <: declarations. Moreover we can say that the module type we are declaring is a subtype of an earlier module type. See DecidableType2 for examples. Also try to handle correctly the freeze/unfreeze summaries when simulating start/include/end (syntax ... := ... <+ ...) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12532 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'library/declaremods.mli')
-rw-r--r--library/declaremods.mli13
1 files changed, 8 insertions, 5 deletions
diff --git a/library/declaremods.mli b/library/declaremods.mli
index 3d16a287f..f20be9cd0 100644
--- a/library/declaremods.mli
+++ b/library/declaremods.mli
@@ -37,14 +37,16 @@ open Lib
*)
val declare_module :
- (env -> 'modtype -> module_struct_entry) -> (env -> 'modexpr -> module_struct_entry) ->
+ (env -> 'modtype -> module_struct_entry) ->
+ (env -> 'modexpr -> module_struct_entry) ->
identifier ->
- (identifier located list * 'modtype) list -> ('modtype * bool) option ->
+ (identifier located list * 'modtype) list ->
+ 'modtype Topconstr.module_signature ->
'modexpr list -> module_path
val start_module : (env -> 'modtype -> module_struct_entry) ->
bool option -> identifier -> (identifier located list * 'modtype) list ->
- ('modtype * bool) option -> module_path
+ 'modtype Topconstr.module_signature -> module_path
val end_module : unit -> module_path
@@ -54,10 +56,11 @@ val end_module : unit -> module_path
val declare_modtype : (env -> 'modtype -> module_struct_entry) ->
identifier -> (identifier located list * 'modtype) list ->
- 'modtype list -> module_path
+ 'modtype list -> 'modtype list -> module_path
val start_modtype : (env -> 'modtype -> module_struct_entry) ->
- identifier -> (identifier located list * 'modtype) list -> module_path
+ identifier -> (identifier located list * 'modtype) list ->
+ 'modtype list -> module_path
val end_modtype : unit -> module_path