summaryrefslogtreecommitdiff
path: root/src/elab_env.sig
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-08-08 10:28:32 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-08-08 10:28:32 -0400
commitbaf22271ef6e646c97ddfa1e4193a8857816c67d (patch)
tree1d34bf6404d3e94e6862c5fedbc4e53ed6bab883 /src/elab_env.sig
parent51fd5b1af6b2af7706c0c8604129d99e504a2d36 (diff)
Parametrized datatypes through explify
Diffstat (limited to 'src/elab_env.sig')
-rw-r--r--src/elab_env.sig9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/elab_env.sig b/src/elab_env.sig
index f341bed2..6f0febcc 100644
--- a/src/elab_env.sig
+++ b/src/elab_env.sig
@@ -51,13 +51,14 @@ signature ELAB_ENV = sig
val lookupC : env -> string -> Elab.kind var
- val pushDatatype : env -> int -> (string * int * Elab.con option) list -> env
+ val pushDatatype : env -> int -> string list -> (string * int * Elab.con option) list -> env
type datatyp
val lookupDatatype : env -> int -> datatyp
val lookupDatatypeConstructor : datatyp -> int -> string * Elab.con option
+ val datatypeArgs : datatyp -> string list
val constructors : datatyp -> (string * int * Elab.con option) list
- val lookupConstructor : env -> string -> (Elab.datatype_kind * int * Elab.con option * int) option
+ val lookupConstructor : env -> string -> (Elab.datatype_kind * int * string list * Elab.con option * int) option
val pushERel : env -> string -> Elab.con -> env
val lookupERel : env -> int -> string * Elab.con
@@ -87,9 +88,9 @@ signature ELAB_ENV = sig
val projectCon : env -> { sgn : Elab.sgn, str : Elab.str, field : string } -> (Elab.kind * Elab.con option) option
val projectDatatype : env -> { sgn : Elab.sgn, str : Elab.str, field : string }
- -> (string * int * Elab.con option) list option
+ -> (string list * (string * int * Elab.con option) list) option
val projectConstructor : env -> { sgn : Elab.sgn, str : Elab.str, field : string }
- -> (Elab.datatype_kind * int * Elab.con option * Elab.con) option
+ -> (Elab.datatype_kind * int * string list * Elab.con option * Elab.con) option
val projectVal : env -> { sgn : Elab.sgn, str : Elab.str, field : string } -> Elab.con option
val projectSgn : env -> { sgn : Elab.sgn, str : Elab.str, field : string } -> Elab.sgn option
val projectStr : env -> { sgn : Elab.sgn, str : Elab.str, field : string } -> Elab.sgn option