diff src/elab_env.sig @ 157:adc4e42e3adc

Basic datatype importing works
author Adam Chlipala <adamc@hcoop.net>
date Thu, 24 Jul 2008 15:49:30 -0400
parents 813e5a52063d
children b4b70de488e9
line wrap: on
line diff
--- a/src/elab_env.sig	Thu Jul 24 15:02:03 2008 -0400
+++ b/src/elab_env.sig	Thu Jul 24 15:49:30 2008 -0400
@@ -51,6 +51,12 @@
 
     val lookupC : env -> string -> Elab.kind var
 
+    val pushDatatype : env -> int -> (string * int * Elab.con option) list -> env
+    type datatyp
+    val lookupDatatype : env -> int -> datatyp
+    val lookupConstructor : datatyp -> int -> string * Elab.con option
+    val constructors : datatyp -> (string * int * Elab.con option) list
+
     val pushERel : env -> string -> Elab.con -> env
     val lookupERel : env -> int -> string * Elab.con
 
@@ -78,6 +84,8 @@
     val hnormSgn : env -> Elab.sgn -> Elab.sgn
 
     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
     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