Sourcetype ('a, 'b) eq = | Eq : ('a, 'a) eq
Sourcetype ('a, 'b, 'c) builtin_desc = | Bool : (bool, [ `Bool ], [> `Bool ]) builtin_desc| Bytes : (bytes, [ `Bytes ], [> `Bytes ]) builtin_desc| Char : (char, [ `Char ], [> `Char ]) builtin_desc| Float : (float, [ `Float ], [> `Float ]) builtin_desc| Int : (int, [ `Int ], [> `Int ]) builtin_desc| Int32 : (int32, [ `Int32 ], [> `Int32 ]) builtin_desc| Int64 : (int64, [ `Int64 ], [> `Int64 ]) builtin_desc| Nativeint : (nativeint, [ `Nativeint ], [> `Nativeint ]) builtin_desc| String : (string, [ `String ], [> `String ]) builtin_desc
Sourcetype ('index, 'items, 'value, 'tail) selection = | Start : ([ `Zero ], 'sequence, _, 'sequence) selection| Next : ('index, 'sequence, _, 'head * 'tail) selection -> ([ `Succ of 'index ],
'sequence,
'head,
'tail)
selection
Sourcetype ('index, 'items, 'value, 'tail) binary_selection = | BinaryStart : ([ `Start ], 'sequence, _, 'sequence) binary_selection| Zero : ('index, 'sequence, _, 'zero * 'one) binary_selection -> ([ `Zero of
'index ],
'sequence,
_,
'zero)
binary_selection| One : ('index, 'sequence, _, 'zero * 'one) binary_selection -> ([ `One of
'index ],
'sequence,
_,
'one)
binary_selection| Select : ('index, 'sequence, _, 'contents ref) binary_selection -> ([
`Select of
'index ],
'sequence,
'contents,
unit)
binary_selection
Sourcetype ('index, 'arity, 'a, 'positive, 'direct) variable = | VFirst : ([ `Zero ], 'value * _, 'value, [ `Present ] * _, [ `Present ] * _)
variable| VNext : ('index, 'sequence, 'value, 'positive, 'direct) variable -> ([
`Succ of
'index ],
_
* 'sequence,
'value,
_
* 'positive,
_ * 'direct)
variable
Sourcetype ('count, 'types) length = | Zero : ([ `Zero ], unit) length| Succ : ('length, 'types) length -> ([ `Succ of 'length ], _ * 'types) length
Sourcetype ('a, 'b, 'c) append = | Nil : (unit, 'a, 'a) append| Add : ('a, 'b, 'c) append -> ('head * 'a, 'b, 'head * 'c) append
Sourcetype ('global, 'local) presence = | Present : ([> `Present ], [ `Present ]) presence| Absent : (_, [ `Absent ]) presence
Sourcetype ('presence, 'directs) presences = | Presences : (_, unit) presences| AddPresent : ('presence, 'directs) presences -> ([> `Present ] as 'presence,
[ `Present ] * 'directs)
presences| AddAbsent : ('presence, 'directs) presences -> ('presence,
[ `Absent ] * 'directs)
presences
Sourcetype ('constraints, 'exists) gadt_constraints = .. Sourcetype ('gadt, 'sub_gadt) sub_gadt_ext = .. Sourcetype ('gadt, 'sub_gadt) sub_gadt = {sub_gadt_ext : ('gadt, 'sub_gadt) sub_gadt_ext;sub_gadt_functional : 'gadt 'sub_gadt0 'sub_gadt1. ('gadt, 'sub_gadt0)
sub_gadt_ext ->
('gadt, 'sub_gadt1) sub_gadt_ext ->
('sub_gadt0, 'sub_gadt1) eq;
} Sourcetype ('count, 'local, 'positive, 'negative, 'direct, 'positives, 'negatives, 'directs, 'subpositive, 'subnegative, 'subdirect)
subvariables =
{presences : ('local, 'directs) presences;positive_count : ('count, 'positives) length;positive : ('positives, 'positive, 'subpositive) append;negative_count : ('count, 'negatives) length;negative : ('negatives, 'negative, 'subnegative) append;direct_count : ('count, 'directs) length;direct : ('directs, 'direct, 'subdirect) append;
} Sourcetype ('a, 'arity, 'attribute) typed_attribute_kind = .. Sourcetype ('source, 'sub, 'arg) transfer_arguments = | VTANil : (unit, _, unit) transfer_arguments| VTACons : {head : ('source, 'sub, 'arg) transfer_argument;tail : ('sources, 'sub, 'args) transfer_arguments;
} -> ('source * 'sources, 'sub, 'arg * 'args) transfer_arguments
Sourcetype ('p, 'n, 'sp, 'sn, 'ap, 'an) transfer_matrix = {pp : ('p, 'sp, 'ap) transfer_arguments;pn : ('p, 'sn, 'an) transfer_arguments;np : ('n, 'sp, 'an) transfer_arguments;nn : ('n, 'sn, 'ap) transfer_arguments;
} Sourcetype ('positive, 'negative, 'direct, 'subpositive, 'subnegative, 'subdirect, 'variables)
transfer =
| VTNil : (_, _, _, unit, unit, unit, unit) transfer| VTCons : {head : ('p, 'n, 'sp, 'sn, 'ap, 'an) transfer_matrix
* ('d, 'sd, 'ad) transfer_arguments;tail : ('p, 'n, 'd, 'sps, 'sns, 'sds, 'variables) transfer;
} -> ('p,
'n,
'd,
'sp * 'sps,
'sn * 'sns,
'sd * 'sds,
('ap * 'an * 'ad) * 'variables)
transfer
Sourcetype ('a, 'b) skip = | VKeep : ('a, 'a) skip| VSkip : ('a, [ `Absent ]) skip
Sourcetype ('positive, 'negative, 'direct, 'skip_positive, 'skip_negative, 'skip_direct, 'variables)
transfer_skip =
| Transfer_skip : {transfer_vector : ('positive,
'negative,
'direct,
'subpositive,
'subnegative,
'subdirect,
'variables)
transfer;skip_positive : ('subpositive, 'skip_positive) skip_vector;skip_negative : ('subnegative, 'skip_negative) skip_vector;skip_direct : ('subdirect, 'skip_direct) skip_vector;
} -> ('positive,
'negative,
'direct,
'skip_positive,
'skip_negative,
'skip_direct,
'variables)
transfer_skip
Sourcetype ('a, 'structure, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt)
desc =
| Variable : ('index, 'arity, 'a, 'positive, 'direct) variable -> ('a,
[ `Variable of
'index ],
'arity,
'rec_group,
[>
`Variable ],
'positive,
_,
'direct,
_)
desc| Builtin : ('a, 'structure, 'kinds) builtin_desc -> ('a,
[ `Builtin of 'structure ],
'arity,
'rec_group,
'kinds,
_,
_,
_,
_)
desc| Array : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'negative,
'positive,
'negative,
'gadt)
desc -> ('a array,
[ `Array of 'structure ],
'arity,
'rec_group,
[> `Array ] as 'kinds,
'negative,
'positive,
'negative,
'gadt)
desc| Arrow : {parameter : ('a,
'a_structure,
'arity,
'rec_group,
'kinds,
'negative,
'positive,
'negative,
'gadt)
desc;result : ('b,
'b_structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'positive,
'gadt)
desc;
} -> ('a ->
'b,
[ `Arrow of 'a_structure -> 'b_structure ],
'arity,
'rec_group,
[> `Arrow ] as 'kinds,
'positive,
'negative,
_,
'gadt)
desc| LabelledArrow : {label : string;optional : bool;parameter : ('a,
'a_structure,
'arity,
'rec_group,
'kinds,
'negative,
'positive,
'negative,
'gadt)
desc;result : ('b,
'b_structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'positive,
'gadt)
desc;wrap : ('a -> 'b) -> 'arrow;unwrap : 'arrow -> 'a -> 'b;
} -> ('arrow,
[ `LabelledArrow of 'a_structure -> 'b_structure ],
'arity,
'rec_group,
[> `Arrow ] as 'kinds,
'positive,
'negative,
_,
'gadt)
desc| Constr : {constructors : ('cases,
'structures,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
constructors;construct : 'cases binary_choice -> 'a;destruct : 'a -> 'cases binary_choice;
} -> ('a,
[ `Constr of 'structures ],
'arity,
'rec_group,
[> `Constr ] as 'kinds,
'positive,
'negative,
'direct,
'gadt)
desc| Variant : {constructors : ((_ * _) as 'cases,
'structures,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
variant_constructors;construct : 'cases choice -> 'a;destruct : 'a -> 'cases choice;
} -> ('a,
[ `Variant of 'structures ],
'arity,
'rec_group,
[> `Variant ] as 'kinds,
'positive,
'negative,
'direct,
'gadt)
desc| Tuple : {structure : ((_ * (_ * _)) as 'types,
'structures,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
tuple_structure;construct : 'types -> 'a;destruct : 'a -> 'types;
} -> ('a,
[ `Tuple of 'structures ],
'arity,
'rec_group,
[> `Tuple ] as 'kinds,
'positive,
'negative,
'direct,
'gadt)
desc| Record : {structure : ((_ * _) as 'types,
'structures,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
record_structure;construct : 'types -> 'a;destruct : 'a -> 'types;
} -> ('a,
[ `Record of 'structures ],
'arity,
'rec_group,
[> `Record ] as 'kinds,
'positive,
'negative,
'direct,
'gadt)
desc| Object : {methods : ('methods,
'structures,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
object_methods;construct : 'methods Delays.t -> 'a;destruct : 'a -> 'methods Delays.t;
} -> (< .. > as 'a,
[ `Object of 'structures ],
'arity,
'rec_group,
[> `Object ] as 'kinds,
'positive,
'negative,
'direct,
'gadt)
desc| Lazy : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
desc -> ('a Lazy.t,
[ `Lazy of 'structure ],
'arity,
'rec_group,
[> `Lazy ] as 'kinds,
'positive,
'negative,
'direct,
'gadt)
desc| Apply : {arguments : ('types,
'structures,
'arity,
'rec_group,
'kinds,
'variables,
'gadt)
vector;desc : ('a,
'structure,
'types,
'rec_group,
'kinds,
'subpositive,
'subnegative,
'subdirect,
'gadt)
desc;transfer : ('positive,
'negative,
'direct,
'subpositive,
'subnegative,
'subdirect,
'variables)
transfer_skip;
} -> ('a,
[ `Apply of
'structure
* 'structures
* 'subpositive
* 'subnegative
* 'subdirect
* 'variables ],
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
desc| MapOpaque : {desc : ('a,
'structure,
'arity,
'rec_group,
Kinds.all,
'positive,
'negative,
'direct,
'gadt)
desc;
} -> ('a,
[ `MapOpaque of 'structure * 'direct ],
'arity,
'rec_group,
[> `MapOpaque ],
'positive,
'negative,
_,
'gadt)
desc| Opaque : ([ `Succ of 'index ], 'gadt, 'a, _) selection -> ('a,
[ `Opaque of 'index ],
'arity,
'rec_group,
[> `Opaque ],
'positive,
'negative,
_,
'gadt)
desc| Rec : {index : ([ `Select of 'index ], 'rec_group, 'length * 'structure, _)
binary_selection;desc : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
desc;
} -> ('a,
[ `Rec of 'index ],
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
desc| RecGroup : {desc : ('a,
'structure,
'arity,
'new_rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
desc;
} -> ('a,
[ `RecGroup of 'structure * 'new_rec_group ],
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
desc| SelectGADT : {index : ([ `Succ of 'index ], 'gadt, 'sub_gadt, _) selection;desc : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'sub_gadt)
desc;
} -> ('a,
[ `SelectGADT of 'structure * 'index ],
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
desc| SubGADT : {sub_gadt : ('gadt, 'sub_gadt) sub_gadt;desc : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'sub_gadt)
desc;
} -> ('a,
[ `SubGADT of 'structure ],
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
desc| Attributes : {attributes : ('a,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
attributes;desc : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
desc;
} -> ('a,
[ `Attributes of 'structure ],
'arity,
'rec_group,
[> `Attributes ] as 'kinds,
'positive,
'negative,
'direct,
'gadt)
desc| Name : {name : string;refl : 'a refl;desc : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'sub_gadt)
desc;
} -> ('a,
[ `Name of 'structure ],
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'sub_gadt)
desc
Sourceand ('cases, 'structures, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt)
constructors =
| CLeaf : ('types_and_eqs,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
constructor -> ('types_and_eqs ref,
'structure ref,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
constructors| CNode : {zero : ('cases0,
'structures0,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
constructors;one : ('cases1,
'structures1,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
constructors;
} -> ('cases0 * 'cases1,
'structures0 * 'structures1,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
constructors
Sourceand ('types_and_eqs, 'structure, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt)
constructor =
| Constructor : {name : string;kind : ('types,
'structure_types,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
constructor_kind;eqs : ('eqs, 'structure_eqs, 'kinds, 'gadt) constructor_eqs;attributes : ('types,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
attributes;
} -> ('types * 'eqs,
[ `Constructor of 'structure_types * 'structure_eqs ],
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
constructor| Exists : {name : string;selection : ([ `Succ of 'index ], 'gadt, 'constraints, _) selection;presence : ('kinds, 'local) presence;variables : ('count,
'local,
'positive,
'negative,
'direct,
'positives,
'negatives,
'directs,
'subpositive,
'subnegative,
'subdirect)
subvariables;construct : 'exists 'subarity. ('count, 'exists) length ->
('constraints, 'exists) gadt_constraints ->
('exists, 'arity, 'subarity) append ->
('value,
'structure,
'subarity,
'rec_group,
'kinds,
'subpositive,
'subnegative,
'subdirect,
'gadt)
exists_construct;destruct : 'value ->
('count,
'constraints,
'value,
'structure,
'arity,
'rec_group,
'kinds,
'subpositive,
'subnegative,
'subdirect,
'gadt)
exists_destruct;
} -> ('value,
[ `Exists of
'index
* 'count
* 'structure
* 'local
* 'positives
* 'negatives
* 'directs ],
'arity,
'rec_group,
[> `Exists ] as 'kinds,
'positive,
'negative,
'direct,
'gadt)
constructor
Sourceand ('value, 'structure, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt)
exists_construct =
| ExistsConstruct : {kind : ('types,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
constructor_kind;construct : 'types -> 'value;
} -> ('value,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
exists_construct
Sourceand ('count, 'constraints, 'value, 'structure, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt)
exists_destruct =
| ExistsDestruct : {exists_count : ('count, 'exists) length;exists : ('exists, 'arity, 'subarity) append;constraints : ('constraints, 'exists) gadt_constraints;kind : ('types,
'structure,
'subarity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
constructor_kind;values : 'types;
} -> ('count,
'constraints,
'value,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
exists_destruct
Sourceand ('types, 'structure, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt)
constructor_kind =
| CTuple : ('types,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
tuple_structure -> ('types,
[ `Tuple of 'structure ],
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
constructor_kind| CRecord : ('types,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
record_structure -> ('types,
[ `Record of 'structure ],
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
constructor_kind
Sourceand ('types, 'structures, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt)
tuple_structure =
| TNil : (unit,
unit,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
tuple_structure| TCons : {head : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
desc;tail : ('types,
'structures,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
tuple_structure;
} -> ('a * 'types,
'structure * 'structures,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
tuple_structure
Sourceand ('types, 'structures, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt)
record_structure =
| RNil : (unit,
unit,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
record_structure| RCons : {head : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
record_field;tail : ('types,
'structures,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
record_structure;
} -> ('a * 'types,
'structure * 'structures,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
record_structure
Sourceand ('a, 'structure, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt)
record_field =
| Mono : {label : string;desc : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
desc;attributes : ('a,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
attributes;
} -> ('a,
[ `Mono of 'structure ],
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
record_field| Poly : {label : string;variables : ('count,
[ `Absent ],
'positive,
'negative,
'direct,
'positives,
'negatives,
'directs,
'subpositive,
'subnegative,
'subdirect)
subvariables;destruct : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'subpositive,
'subnegative,
'subdirect,
'gadt,
'count)
forall_destruct;construct : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'subpositive,
'subnegative,
'subdirect,
'gadt,
'count)
forall_construct ->
'a;
} -> ('a,
[ `Poly of 'structure * 'count * 'positives * 'negatives * 'directs ],
'arity,
'rec_group,
[> `Poly ] as 'kinds,
'positive,
'negative,
'direct,
'gadt)
record_field
Sourceand ('a, 'structure, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt, 'count)
forall_construct =
{forall_construct : 'forall 'b 'subarity. ('count, 'forall) length ->
('forall, 'arity, 'subarity) append ->
('b,
'structure,
'subarity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
desc ->
'b;
} Sourceand ('a, 'structure, 'arity, 'rec_group, 'kinds, 'subpositive, 'subnegative, 'subdirect, 'gadt, 'count)
forall_destruct =
{forall_destruct : 'forall 'subarity. ('count, 'forall) length ->
('forall, 'arity, 'subarity) append ->
('a,
'structure,
'subarity,
'rec_group,
'kinds,
'subpositive,
'subnegative,
'subdirect,
'gadt)
forall_destruct_result;
} Sourceand ('a, 'structure, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt)
forall_destruct_result =
| ForallDestruct : {desc : ('b,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
desc;destruct : 'a -> 'b;
} -> ('a,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
forall_destruct_result
Sourceand ('cases, 'structures, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt)
variant_constructors =
| VCNil : (unit,
unit,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
variant_constructors| VCCons : {head : ('types,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
variant_constructor;tail : ('cases,
'structures,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
variant_constructors;
} -> ('types * 'cases,
'structure * 'structures,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
variant_constructors
Sourceand ('types, 'structure, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt)
variant_constructor =
| VConstructor : {name : string;argument : ('types,
'structures,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
variant_argument;
} -> ('types,
[ `Constr of 'structures ],
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
variant_constructor| VInherit : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
desc -> ('a,
[ `Inherit of 'structure ],
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
variant_constructor
Sourceand ('types, 'structures, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt)
variant_argument =
| VNone : (unit,
unit,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
variant_argument| VSome : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
desc -> ('a * unit,
'structure * unit,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
variant_argument
Sourceand ('methods, 'structures, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt)
object_methods =
| ONil : (unit,
unit,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
object_methods| OCons : {head : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
object_method;tail : ('methods,
'structures,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
object_methods;
} -> ('a * 'methods,
'structure * 'structures,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
object_methods
Sourceand ('types, 'structure, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt)
object_method =
| OMethod : {name : string;desc : ('a,
'structures,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
desc;
} -> ('a,
[ `Method of 'structures ],
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
object_method
Sourceand ('types, 'structures, 'arity, 'rec_group, 'kinds, 'variables, 'gadt) vector =
| VNil : (unit, unit, 'arity, 'rec_group, 'kinds, unit, 'gadt) vector| VCons : {head : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
desc;tail : ('types, 'structures, 'arity, 'rec_group, 'kinds, 'variables, 'gadt)
vector;
} -> ('a * 'types,
'structure * 'structures,
'arity,
'rec_group,
'kinds,
('positive * 'negative * 'direct) * 'variables,
'gadt)
vector
Sourceand ('eqs, 'structure_eqs, 'kinds, 'gadt) constructor_eqs = | ENil : (unit, unit, 'kinds, 'gadt) constructor_eqs| ECons : {head : ([ `Succ of 'index ], 'gadt, 'eq, _) selection;tail : ('eqs, 'structure_eqs, 'kinds, 'gadt) constructor_eqs;
} -> ('eq * 'eqs, 'index * 'structure_eqs, [> `GADT ] as 'kinds, 'gadt)
constructor_eqs
Sourceand ('a, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt)
attributes =
{typed : 'attribute. ('a, 'arity, 'attribute) typed_attribute_kind ->
'attribute option;
} Sourceval selection :
'index_a 'index_b 'sequence 'head_a 'head_b 'tail_a 'tail_b. ([ `Succ of
'index_a ],
'sequence,
'head_a,
'tail_a)
Refl__.Desc.selection ->
([ `Succ of 'index_b ], 'sequence, 'head_b, 'tail_b) Refl__.Desc.selection ->
('head_a, 'head_b) Refl__.Desc.eq Sourceval convert_eqs :
'a_eqs 'structure_eqs_a 'structure_eqs_b 'b_eqs 'kinds_a 'kinds_b.
('a_eqs, 'structure_eqs_a, 'kinds_a, 'gadt) Refl__.Desc.constructor_eqs ->
('b_eqs, 'structure_eqs_b, 'kinds_b, 'gadt) Refl__.Desc.constructor_eqs ->
'a_eqs ->
'b_eqs Sourceval convert_presence :
'global_a 'local_a 'global_b 'local_b. ('global_a, 'local_a)
Refl__.Desc.presence ->
('global_b, 'local_b) Refl__.Desc.presence ->
('local_a, 'local_b) Refl__.Desc.eq Sourceval convert_presences :
'global 'local_a 'local_b. ('global, 'local_a) Refl__.Desc.presences ->
('global, 'local_b) Refl__.Desc.presences ->
('local_a, 'local_b) Refl__.Desc.eq Sourcetype ('arity_a, 'arity_b) converters = | SameArity of ('arity_a, 'arity_b) Refl__.Desc.eq| Converters of ('arity_a, 'arity_b) Converters.t
Sourcetype ('forall, 'arity_a, 'arity_b) make_variables = | MakeVariables : {subarity_a : ('forall, 'arity_a, 'subarity_a) Refl__.Desc.append;subarity_b : ('forall, 'arity_b, 'subarity_b) Refl__.Desc.append;converters : ('subarity_a, 'subarity_b) converters;
} -> ('forall, 'arity_a, 'arity_b) make_variables
Sourceval make_variables :
'count 'forall 'arity_a 'arity_b. ('count, 'forall) Refl__.Desc.length ->
('arity_a, 'arity_b) converters ->
('forall, 'arity_a, 'arity_b) make_variables Sourceval convert :
'structure_a 'structure_b 'a_struct 'b_struct 'arity_a 'arity_b 'rec_group_a 'rec_group_b 'kinds_a 'kinds_b 'positive_a 'negative_a 'direct_a 'positive_b 'negative_b 'direct_b 'gadt_a 'gadt_b.
('a_struct,
'structure_a,
'arity_a,
'rec_group_a,
'kinds_a,
'positive_a,
'negative_a,
'direct_a,
'gadt_a)
Refl__.Desc.desc ->
('b_struct,
'structure_b,
'arity_b,
'rec_group_b,
'kinds_b,
'positive_b,
'negative_b,
'direct_b,
'gadt_b)
Refl__.Desc.desc ->
('arity_a, 'arity_b) converters ->
('gadt_a, 'gadt_b) Refl__.Desc.eq option ->
('a_struct, 'b_struct) Converter.t Sourceval transfer :
'a 'structures_a 'arity_a 'rec_group_a 'kinds_a 'variables_a 'gadt_a 'b 'structures_b 'arity_b 'rec_group_b 'kinds_b 'variables_b 'gadt_b.
('a, 'structures_a, 'arity_a, 'rec_group_a, 'kinds_a, 'variables_a, 'gadt_a)
Refl__.Desc.vector ->
('b, 'structures_b, 'arity_b, 'rec_group_b, 'kinds_b, 'variables_b, 'gadt_b)
Refl__.Desc.vector ->
('arity_a, 'arity_b) converters ->
('gadt_a, 'gadt_b) Refl__.Desc.eq option ->
('a, 'b) Converters.t Sourceval cast :
('a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i) Refl__.Desc.desc ->
('j, 'k, 'c, 'l, 'm, 'n, 'o, 'p, 'i) Refl__.Desc.desc ->
'a ->
'j Sourceval map :
'structure 'a_struct 'b_struct 'a_arity 'b_arity 'rec_group 'kinds 'positive 'negative 'direct 'gadt.
('a_struct,
'structure,
'a_arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
Refl__.Desc.desc ->
('b_struct,
'structure,
'b_arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
Refl__.Desc.desc ->
('a_arity, 'b_arity, 'positive, 'negative) Mappers.t ->
('a_struct, 'b_struct) Mapper.t Sourcetype Refl__.Desc.typed_attribute_kind += | Attribute_printer : ('a0, 'arity0, 'a0 Printer.t)
Refl__.Desc.typed_attribute_kind| Attribute_polyprinter : ('a1,
'arity1,
'arity1 PrinterSequence.t ->
'a1 Printer.t)
Refl__.Desc.typed_attribute_kind
Sourcetype 'kinds value = | Value : {desc : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
Refl__.Desc.desc;value : 'a;printers : ('arity, 'direct) Printers.t;
} -> 'kinds value
Sourceval pp :
'a 'structure 'arity 'rec_group 'positive 'negative 'direct 'gadt.
('a,
'structure,
'arity,
'rec_group,
[> `Array
| `Arrow
| `Attributes
| `Bool
| `Bytes
| `Char
| `Constr
| `Exists
| `Float
| `Int
| `Int32
| `Int64
| `Lazy
| `MapOpaque
| `Nativeint
| `Object
| `Opaque
| `Poly
| `Record
| `String
| `Tuple
| `Variable
| `Variant ],
'positive,
'negative,
'direct,
'gadt)
Refl__.Desc.desc ->
('arity, 'direct) Printers.t ->
'a Printer.t Sourceval show :
('a,
'b,
'c,
'd,
[> `Array
| `Arrow
| `Attributes
| `Bool
| `Bytes
| `Char
| `Constr
| `Exists
| `Float
| `Int
| `Int32
| `Int64
| `Lazy
| `MapOpaque
| `Nativeint
| `Object
| `Opaque
| `Poly
| `Record
| `String
| `Tuple
| `Variable
| `Variant ],
'e,
'f,
'g,
'h)
Refl__.Desc.desc ->
('c, 'g) Printers.t ->
'a ->
string Sourceval compare_gen :
?hook:Compare.hook ->
('a,
'b,
'c,
'd,
[< Refl__.Desc.Kinds.comparable Array Attributes Bool Bytes Char Constr Exists Float Int Int32 Int64 Lazy MapOpaque Nativeint Object Opaque Record String Tuple Variable Variant ] as 'e,
'f,
'g,
'h,
'i)
Refl__.Desc.desc ->
('j, 'b, 'k, 'd, 'e, 'f, 'g, 'h, 'l) Refl__.Desc.desc ->
('c, 'i, 'k, 'l) Compare.poly ->
('c, 'k, 'h) Compare.Comparers.t ->
('a, 'j) Compare.Comparer.t Sourceval compare_poly :
?hook:Compare.hook ->
('a,
'b,
'c,
'd,
[< Refl__.Desc.Kinds.comparable Array Attributes Bool Bytes Char Constr Exists Float Int Int32 Int64 Lazy MapOpaque Nativeint Object Opaque Record String Tuple Variable Variant ] as 'e,
'f,
'g,
'h,
'i)
Refl__.Desc.desc ->
('j, 'b, 'k, 'd, 'e, 'f, 'g, 'h, 'l) Refl__.Desc.desc ->
('c, 'k, 'h) Compare.Comparers.t ->
('a, 'j) Compare.Comparer.t Sourceval compare :
?hook:Compare.hook ->
('a,
'b,
'c,
'd,
[< Refl__.Desc.Kinds.comparable Array Attributes Bool Bytes Char Constr Exists Float Int Int32 Int64 Lazy MapOpaque Nativeint Object Opaque Record String Tuple Variable Variant ],
'e,
'f,
'g,
'h)
Refl__.Desc.desc ->
('c, 'c, 'g) Compare.Comparers.t ->
('a, 'a) Compare.Comparer.t Sourceval equal_poly :
?hook:Eq.hook ->
('a,
'b,
'c,
'd,
[< Refl__.Desc.Kinds.comparable Array Attributes Bool Bytes Char Constr Exists Float Int Int32 Int64 Lazy MapOpaque Nativeint Object Opaque Record String Tuple Variable Variant ] as 'e,
'f,
'g,
'h,
'i)
Refl__.Desc.desc ->
('j, 'b, 'k, 'd, 'e, 'f, 'g, 'h, 'l) Refl__.Desc.desc ->
('c, 'k, 'h) Eq.Equalers.t ->
('a, 'j) Eq.Equaler.t Sourceval equal :
?hook:Eq.hook ->
('a,
'b,
'c,
'd,
[< Refl__.Desc.Kinds.comparable Array Attributes Bool Bytes Char Constr Exists Float Int Int32 Int64 Lazy MapOpaque Nativeint Object Opaque Record String Tuple Variable Variant ],
'e,
'f,
'g,
'h)
Refl__.Desc.desc ->
('c, 'c, 'g) Eq.Equalers.t ->
('a, 'a) Eq.Equaler.t Sourceval hash :
('a,
'b,
'c,
'd,
[< Refl__.Desc.Kinds.comparable Array Attributes Constr Exists Lazy MapOpaque Object Opaque Record Tuple Variable Variant ],
'e,
'f,
'g,
'h)
Refl__.Desc.desc ->
('c, 'g) Hash.Hashers.t ->
'a Hash.Hasher.t Sourcetype Refl__.Desc.typed_attribute_kind += | Attribute_value : ('a0, 'arity0, int) Refl__.Desc.typed_attribute_kind
Sourceval lift_zero :
('cases Refl__.Desc.binary_choice * int option) list ->
(('cases * 'a) Refl__.Desc.binary_choice * int option) list Sourceval lift_one :
('cases Refl__.Desc.binary_choice * int option) list ->
(('a * 'cases) Refl__.Desc.binary_choice * int option) list Sourceval merge : 'a list -> 'a list -> 'a list Sourceval constructor_assoc :
'cases 'structures. ('cases,
'structures,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
Refl__.Desc.constructors ->
('cases Refl__.Desc.binary_choice * int option) list Sourceval constructor_assoc_with_default_values :
('a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i) Refl__.Desc.constructors ->
('a Refl__.Desc.binary_choice * int) list Sourcetype ('a, 'b) enum_structure = [ | `RecGroup of [ `Name of [ `Constr of 'a ] ] * 'b
] Sourceval min :
'a. ('a,
('structures, 'b) enum_structure,
'arity,
'rec_group,
[> `Constr ],
'positive,
'negative,
'direct,
'gadt)
Refl__.Desc.desc ->
int Sourceval max :
'a. ('a,
('structures, 'b) enum_structure,
'arity,
'rec_group,
[> `Constr ],
'positive,
'negative,
'direct,
'gadt)
Refl__.Desc.desc ->
int Sourceval check_choice :
'cases Refl__.Desc.binary_choice ->
('cases Refl__.Desc.binary_choice * int) ->
bool Sourceval check_value : int -> ('cases Refl__.Desc.binary_choice * int) -> bool Sourceval to_int_opt :
'a. ('a,
('structures, 'b) enum_structure,
'arity,
'rec_group,
[> `Constr ],
'positive,
'negative,
'direct,
'gadt)
Refl__.Desc.desc ->
'a ->
int option Sourceval of_int_opt :
'a. ('a,
('structures, 'b) enum_structure,
'arity,
'rec_group,
[> `Constr ],
'positive,
'negative,
'direct,
'gadt)
Refl__.Desc.desc ->
int ->
'a option Sourceval to_string :
'a. ('a,
('structures, 'b) enum_structure,
'arity,
'rec_group,
[> `Constr ],
'positive,
'negative,
'direct,
'gadt)
Refl__.Desc.desc ->
'a ->
string Sourceval of_string_aux :
'cases 'structures. ('cases,
'structures,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
Refl__.Desc.constructors ->
string ->
'cases Refl__.Desc.binary_choice option Sourceval of_string_opt :
'a. ('a,
('structures, 'b) enum_structure,
'arity,
'rec_group,
[> `Constr ],
'positive,
'negative,
'direct,
'gadt)
Refl__.Desc.desc ->
string ->
'a option include module type of struct include Iter end
Sourcemodule Iters = Iter.Iters Sourceval iter :
'a 'structure 'arity 'rec_group 'positive 'negative 'direct 'gadt.
('a,
'structure,
'arity,
'rec_group,
[> `Array
| `Arrow
| `Attributes
| `Constr
| `Exists
| `Lazy
| `MapOpaque
| `Object
| `Opaque
| `Poly
| `Record
| `Tuple
| `Variable
| `Variant ],
'positive,
'negative,
'direct,
'gadt)
Refl__.Desc.desc ->
('arity, 'direct) Iters.t ->
'a Iter.t include module type of struct include Fold end
Sourcemodule Folds = Fold.Folds Sourceval fold :
'a 'structure 'arity 'rec_group 'positive 'negative 'direct 'gadt.
('a,
'structure,
'arity,
'rec_group,
[> `Array
| `Arrow
| `Attributes
| `Constr
| `Exists
| `Lazy
| `MapOpaque
| `Object
| `Opaque
| `Poly
| `Record
| `Tuple
| `Variable
| `Variant ],
'positive,
'negative,
'direct,
'gadt)
Refl__.Desc.desc ->
('arity, 'acc, 'direct) Folds.t ->
('a, 'acc) Fold.t Sourcetype Refl__.Desc.typed_attribute_kind += | Attribute_default : ('a0, 'arity0, 'a0) Refl__.Desc.typed_attribute_kind
Sourcetype ('arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt) field = | F : ('a,
'structure,
'arity,
'rec_group,
'kinds,
'positive,
'negative,
'direct,
'gadt)
Refl__.Desc.desc
* 'a -> ('arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt)
field
Sourceval make_fields :
'types 'structures. ('types,
'structures,
'arity,
'rec_group,
[> `Poly ] as 'a,
'positive,
'negative,
'direct,
'gadt)
Refl__.Desc.record_structure ->
('arity, 'rec_group, 'a, 'positive, 'negative, 'direct, 'gadt) field
StringMap.t ->
'types Sourcetype ('a, 'b) record_type_structure = [ | `RecGroup of [ `Name of [ `Record of 'a ] ] * 'b
] Sourceval make :
'a 'structures 'new_rec_group. ('a,
('structures, 'new_rec_group)
record_type_structure,
'arity,
'rec_group,
[> `Poly | `Record ] as 'b,
'positive,
'negative,
'direct,
'gadt)
Refl__.Desc.desc ->
('arity, 'new_rec_group, 'b, 'positive, 'negative, 'direct, 'gadt) field
StringMap.t ->
'a