type spec =
| Decl
- | Def
- | Fix of int * int (* fixno, recparamno *)
+ | Def of int (* height *)
+ | Fix of int * int * int (* fixno, recparamno, height *)
| CoFix of int
- | Ind of int
- | Con of int * int (* indtyno, constrno *)
+ | Ind of bool * int * int (* inductive, indtyno, leftno *)
+ | Con of int * int * int (* indtyno, constrno, leftno *)
-type reference = private Ref of int * NUri.uri * spec
+type reference = private Ref of NUri.uri * spec
+
+val reference_of_spec: NUri.uri -> spec -> reference
val eq: reference -> reference -> bool
+val compare: reference -> reference -> int
val string_of_reference: reference -> string
+val reference_of_string: string -> reference
(* given the reference of an inductive type, returns the i-th contructor *)
val mk_constructor: int -> reference -> reference
+(* given the reference of an inductive type constructor, returns the indty *)
+val mk_indty: bool -> reference -> reference
val mk_fix: int -> int -> reference -> reference
val mk_cofix: int -> reference -> reference
-
-
-(* CACCA *)
-val reference_of_ouri: UriManager.uri -> spec -> reference
-val ouri_of_reference: reference -> UriManager.uri