package refl

  1. Overview
  2. Docs
type (!'a, !'b, !'occurrence) item =
  1. | None : ('c, 'd, [ `Absent ]) item
  2. | Some : ('a0, 'b0) Equaler.t -> ('a0, 'b0, 'e) item
type (!'a, !'b, !'occurrences) t =
  1. | [] : (unit, unit, unit) t
  2. | :: : ('head_a, 'head_b, 'occurrence) item * ('tail_a, 'tail_b, 'occurrences0) t -> ('head_a * 'tail_a, 'head_b * 'tail_b, 'occurrence * 'occurrences0) t
val get : ('index, 'a, 'value_a, 'positive, 'occurrences) Refl__.Desc.variable -> ('index, 'b, 'value_b, 'positive, 'occurrences) Refl__.Desc.variable -> ('a, 'b, 'occurrences) t -> ('value_a, 'value_b) Equaler.t
val make_transfer : ('source, 'sub, 'arg) Refl__.Desc.transfer_arguments -> ('a, 'b, 'source) t -> (('a, 'b, 'arg) t, ('sub, [ `Absent ]) Refl__.Desc.eq) result
type (!'arity_a, !'arity_b, !'rec_group, !'kinds, !'gadt_a, !'gadt_b) make = {
  1. f : 'a 'b 'structure 'ap 'an 'ad. ('a, 'structure, 'arity_a, 'rec_group, 'kinds, 'ap, 'an, 'ad, 'gadt_a) Refl__.Desc.desc -> ('b, 'structure, 'arity_b, 'rec_group, 'kinds, 'ap, 'an, 'ad, 'gadt_b) Refl__.Desc.desc -> ('arity_a, 'arity_b, 'ad) t -> ('a, 'b) Equaler.t;
}
val make_transfer_vector : ('arity_a, 'arity_b, 'rec_group, 'kinds, 'gadt_a, 'gadt_b) make -> ('types_a, 'structures, 'arity_a, 'rec_group, 'kinds, 'arguments, 'gadt_a) Refl__.Desc.vector -> ('types_b, 'structures, 'arity_b, 'rec_group, 'kinds, 'arguments, 'gadt_b) Refl__.Desc.vector -> ('positive, 'negative, 'direct, 'subpositive, 'subnegative, 'subdirect, 'arguments) Refl__.Desc.transfer -> ('arity_a, 'arity_b, 'direct) t -> ('types_a, 'types_b, 'subdirect) t
val skip : ('variables, 'skip_variables) Refl__.Desc.skip_vector -> ('a, 'b, 'variables) t -> ('a, 'b, 'skip_variables) t
val make : ('a, 'b, 'c, 'd, 'e, 'f) make -> ('g, 'h, 'a, 'c, 'd, 'i, 'e) Refl__.Desc.vector -> ('j, 'h, 'b, 'c, 'd, 'i, 'f) Refl__.Desc.vector -> ('k, 'l, 'm, 'n, 'o, 'p, 'i) Refl__.Desc.transfer_skip -> ('a, 'b, 'm) t -> ('g, 'j, 'p) t
type !'presence any =
  1. | None : [ `Absent ] any
  2. | Some : {
    1. item : 'a 'b. ('a, 'b) Equaler.t;
    } -> 'c any
val append : 'presence any -> ('presence, 'directs) Refl__.Desc.presences -> ('count, 'directs) Refl__.Desc.length -> ('directs, 'direct, 'subdirect) Refl__.Desc.append -> ('count, 'types_a) Refl__.Desc.length -> ('types_a, 'a, 'sub_a) Refl__.Desc.append -> ('count, 'types_b) Refl__.Desc.length -> ('types_b, 'b, 'sub_b) Refl__.Desc.append -> ('a, 'b, 'direct) t -> ('sub_a, 'sub_b, 'subdirect) t