Module Record_builder__.Hlist

type 'elements t = 'elements

Stores an Hlist as a set of right-nested tuples.

type nil = unit
type ('head, 'tail) cons = 'head * 'tail
type 'elements nonempty = 'elements constraint 'elements = ('x'xscons
val empty : nil t
val cons : 'a ‑> 'tail t ‑> ('a'tailcons t
val head : ('a_cons t ‑> 'a
val tail : (_'tailcons t ‑> 'tail
module Suffix_index : sig ... end
val drop : 'elements_before t ‑> ('elements_before'elements_afterSuffix_index.t ‑> 'elements_after t

Drop some prefix of an Hlist to get a suffix of it.

/O(n)/ allocation and work.

module Element_index : sig ... end
val nth : 'elements t ‑> ('elements'elementElement_index.t ‑> 'element

Get the element at some index of an hlist.

/O(n)/ work, no allocation.