type spec =
| Decl
- | Def of int (* height *)
- | Fix of int * int * int (* fixno, recparamno, height *)
+ | Def of int (* height *)
+ | Fix of int * int * int (* fixno, recparamno, height *)
| CoFix of int
- | Ind of bool * int (* inductive, indtyno *)
- | 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 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