Var.GprodGeneralize Prod.
This could be useful for group by on multiple variables.
type ('o, 'p) var = ('o, 'p) tThe type for variables.
The type for contructing a cartesian product 'c with function 'p by projecting values from 'o.
val unit : 'a -> ('c, 'o, 'a) tunit f is a (virtual) unit variable with contructor f to be saturated by prod.
val proj : ('c, 'o, 'c) t -> 'o -> 'c