refl

PPX deriver for reflection
IN THIS PACKAGE
Module Refl . Tools . Variant
type ('types, 'structure, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt) argument =
| None : ( unit, unit, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt ) argument
val map_choice : 'a_cases 'b_cases 'structures. ( 'a_arity, 'b_arity, 'rec_group, 'kinds_a, 'kinds_b, 'positive, 'negative, 'direct, 'gadt ) map -> ( 'a_cases, 'structures, 'a_arity, 'rec_group, 'kinds_a, 'positive, 'negative, 'direct, 'gadt ) Refl__Desc.variant_constructors -> ( 'b_cases, 'structures, 'b_arity, 'rec_group, 'kinds_b, 'positive, 'negative, 'direct, 'gadt ) Refl__Desc.variant_constructors -> 'a_cases Refl__Desc.choice -> 'b_cases Refl__Desc.choice
type ('types, 'structure, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt) kind =
| Constructor : {
name : string;
argument : ( 'types, 'structure, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt ) argument;
} -> ( 'types, [ `Constr of 'structure ], 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt ) kind
type ('cases, 'structures, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt) destruct
val destruct_choice : 'index 'types 'structure 'tail_cases 'tail_structures. ( 'cases, 'structures, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt ) Refl__Desc.variant_constructors -> ( 'index, 'cases, 'types, 'tail_cases ) Refl__Desc.selection -> ( 'index, 'structures, 'structure, 'tail_structures ) Refl__Desc.selection -> ( 'tail_cases, 'tail_structures, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt ) Refl__Desc.variant_constructors -> 'tail_cases Refl__Desc.choice -> ( 'cases, 'structures, 'arity, 'rec_group, 'kinds, 'positive, 'negative, 'direct, 'gadt ) destruct
val destruct : ( 'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i ) Refl__Desc.variant_constructors -> 'j Refl__Desc.choice -> ( 'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i ) destruct