Module Row.Repr

Low-level representation (unstable).

type ('r, 'a) prod' := ('r, 'a) prod
type ('r, 'a) prod =
  1. | Unit : 'a -> ('r, 'a) prod
  2. | Prod : ('r, 'a -> 'b) prod * ('r, 'a) Col.t -> ('r, 'b) prod
  3. | Cat : ('r, 'a -> 'b) prod * ('r -> 'a) * ('a, 'a) prod -> ('r, 'b) prod

The type for products. See Row.prod.

val of_prod : ('r, 'a) prod' -> ('r, 'a) prod

prod_of_prod p is the representation of p.

val to_prod : ('r, 'a) prod -> ('r, 'a) prod'

prod_to_prod p is the representee of p.

val row_of_cols : ('a -> 'b) Col.def list -> ('a -> 'b) t

row_of_cols cs is a row that contains columns cs. The result is unusable, except for column functions.