Rel_query.BagBags specification language.
Bags are multisets of values (rows).
TODO
Bag.row we could likely get to a scheme where we work directly with Rel.Row in the language (for now we only work with Rel.Col) which should help SQL execution boilerplate. What happens to higher-order ?type unordered = unit orderThe type for unordered.
The type for bags, multisets of values o type 'a and an effect 'e that can be applied on it.
val empty : ('a, 'e) tempty is the empty bag.
val table : 'a Rel.Table.t -> ('a, unordered) ttable t is a table from t.
foreach b f are the values of b mapped by f and unioned.
where c e is the bag e () if b whenever c is true.
val pp : Stdlib.Format.formatter -> ('a, _) t -> unitXXX. Fundamentaly this has nothing to do here.
val row : ('a -> 'r) -> ('a -> 'r) valueval inj : 'a -> 'a valueval const : 'a Rel.Type.t -> 'a -> 'a value