Module Gist.Fields

Operating on sequences of fields.

Fields

type ('p, 'a) t = ('p, 'a) fields

The type for fields for a type of type 'p.

The 'a represents the partial application of a constructor to the fields. Once 'a is equal to 'p we have a product.

val ctor : 'a -> ('p, 'a) fields

ctor f is Ctor f. This lifts the constructor function f for the type 'p in order to construct a list of fields with app yielding a result of type 'p.

val app : ('p, 'f -> 'a) fields -> ('p, 'f) field -> ('p, 'a) fields

app fs f is App (fs, f)

val is_empty : ('p, 'a) fields -> bool

is_empty fs is true if fs has no fields.

val is_singleton : ('p, 'a) fields -> bool

is_singleton fs is true if fs has a single field.