sig
type generated_function =
Construction of Parsetree.generator * Code.pattern list * Code.exp
| Comparison of Code.lident * Code.pattern list * Code.exp
| Construction_helper of Code.lident * Code.pattern list * Code.exp
| Construction_record of Code.lident * Code.pattern list * Code.exp
type generated_functions = Genr_base.generated_function list
val is_construction_function : Genr_base.generated_function -> bool
type binary_fun_exp = Code.exp -> Code.exp -> Code.exp
type comparisons =
Genr_base.binary_fun_exp * Genr_base.binary_fun_exp *
Genr_base.binary_fun_exp
val comparison_function : Longident.t option -> Code.exp
val genr_comparisons : Code.lident option -> Genr_base.comparisons
val pervasives_comparisons : Genr_base.comparisons
val eq_function :
Genr_base.binary_fun_exp -> Code.exp -> Code.exp -> Code.exp
val get_user_rel_order : unit -> bool
val set_user_rel_order : unit -> unit
val order_rels :
(Parsetree.relation -> int) ->
Parsetree.relation list -> Parsetree.relation list
val order_relations :
(Parsetree.relation -> int) -> Parsetree.relations -> Parsetree.relations
val set_sharable_target : unit -> unit
val get_sharable_target : unit -> bool
val compare_function : Parsetree.generator -> Code.lident
val construction_function_name : string -> string
val construction_function_ident : Code.uident -> Code.lident
val construction_function : Parsetree.generator -> Code.lident
val construction_function_memo_table_ident :
Parsetree.generator -> Code.lident
val prefix_ident : string -> Code.lident -> Code.lident
val prefix_construction_function :
string -> Parsetree.generator -> Code.lident
val prefix_construction_function2 :
string -> Parsetree.generator -> Parsetree.generator -> Code.lident
val mk_sharing_function_ident : Parsetree.generator -> Code.lident
val construction : Parsetree.generator -> Code.exp list -> Code.exp
val construction0 : Parsetree.generator -> Code.exp
val construction1 : Parsetree.generator -> Code.exp -> Code.exp
val construction2 : Parsetree.generator -> Code.exp -> Code.exp -> Code.exp
val generator : Parsetree.generator -> Code.exp list -> Code.exp
val generator0 : Parsetree.generator -> Code.exp
val generator1 : Parsetree.generator -> Code.exp -> Code.exp
val generator2 : Parsetree.generator -> Code.exp -> Code.exp -> Code.exp
val nil : Code.exp
val singleton : Code.exp -> Code.exp
val cons : Code.exp -> Code.exp -> Code.exp
val append : Code.exp -> Code.exp -> Code.exp
val genr_rule_pattern : Parsetree.pattern -> Parsetree.pattern
val pattern_info :
Parsetree.generator -> Code.pattern -> Code.pattern list -> Code.pattern
val pattern : Parsetree.generator -> Code.pattern list -> Code.pattern
val pattern0 : Parsetree.generator -> Code.pattern
val pattern1 : Parsetree.generator -> Code.pattern -> Code.pattern
val pattern2 :
Parsetree.generator -> Code.pattern -> Code.pattern -> Code.pattern
val genr_eq : string * Parsetree.type_declaration -> Code.structure_item
val genr_projection :
string * Parsetree.type_declaration ->
Parsetree.core_type -> Code.structure_item
val clauses_of_side :
Parsetree.relation_side ->
Code.clause -> Code.clause -> Code.clauses -> Code.clauses
val clauses_left_or_right :
Parsetree.relation_side ->
Code.clause -> Code.clause -> Code.clauses -> Code.clauses
val clauses_both_as_left :
Parsetree.relation_side ->
Code.clause -> Code.clause -> Code.clauses -> Code.clauses
val opt : bool -> Code.clause -> Code.clauses -> Code.clauses
val lazy_opt :
bool -> (unit -> Code.clause) -> Code.clauses -> Code.clauses
val opts : bool -> Code.clauses -> Code.clauses -> Code.clauses
val map_of_direction :
Parsetree.distributivity_direction -> ('a -> 'b) -> 'a list -> 'b list
val imap_of_direction : Parsetree.distributivity_direction -> Longident.t
val diese_line : Location.t -> int * string
val set_dline_trace : unit -> unit
val get_dline_trace : unit -> bool
val set_comments : unit -> unit
val get_comments : unit -> bool
val trace_clause : int -> string -> Code.clause -> Code.clause
end