refl

PPX deriver for reflection
IN THIS PACKAGE
Module Refl . Visit . Make . Visitors
module T : sig ... end
type ('a, 'occurrence) item =
| None : ( _, [ `Absent ] ) item
| Some : 'a T.t -> ( 'a, _ ) item
type ('sequence, 'occurrences) t =
| [] : ( unit, unit ) t
| :: : ( 'head, 'occurrence ) item * ( 'tail, 'occurrences ) t -> ( 'head * 'tail, 'occurrence * 'occurrences ) t
val get : ( 'index, 'sequence, 'value, 'positive, 'occurrences ) Refl__Desc.variable -> ( 'sequence, 'occurrences ) t -> 'value T.t
val make_transfer : ( 'source, 'sub, 'arg ) Refl__Desc.transfer_arguments -> ( 'sequence, 'source ) t -> ( ( 'sequence, 'arg ) t, ( 'sub, [ `Absent ] ) Refl__Desc.eq ) result
type ('arity, 'rec_group, 'kinds) make = {
f : 'a 'structure 'ap 'an 'ad 'gadt. ( 'a, 'structure, 'arity, 'rec_group, 'kinds, 'ap, 'an, 'ad, 'gadt ) Refl__Desc.desc -> ( 'arity, 'ad ) t -> 'a T.t;
}
val make : ( 'arity, 'rec_group, 'kinds ) make -> ( 'types, 'structures, 'arity, 'rec_group, 'kinds, 'arguments, 'gadt ) Refl__Desc.vector -> ( 'positive, 'negative, 'direct, 'subpositive, 'subnegative, 'subdirect, 'arguments ) Refl__Desc.transfer_skip -> ( 'arity, 'direct ) t -> ( 'types, 'subdirect ) t
type 'presence any =
| None : [ `Absent ] any
| Some : {
item : 'a. 'a T.t;
} -> _ any
val append : 'presence any -> ( 'presence, 'directs ) Refl__Desc.presences -> ( 'count, 'directs ) Refl__Desc.length -> ( 'directs, 'direct, 'subdirect ) Refl__Desc.append -> ( 'count, 'types ) Refl__Desc.length -> ( 'types, 'arity, 'subarity ) Refl__Desc.append -> ( 'arity, 'direct ) t -> ( 'subarity, 'subdirect ) t
val to_sequence : [ `Present ] any -> ( 'sequence, 'occurrences ) t -> 'sequence Refl__Desc.Sequence(T).t