Product.Make
module E : Elt
type tuple
type t
val list_to_tuple : E.t list -> tuple
val tuple_to_list : tuple -> E.t list
val tuple_to_string : tuple -> string
val product : int -> tuple -> t
product n t returns the product T×T×…×T (n time) where T is the set of elements of t
product n t
T×T×…×T
n
T
t
val fold : ('a -> tuple -> 'a) -> 'a -> t -> 'a
map f product the list of f t where t ranges over the tuples of product.
map f product
f t
product
val to_list : t -> E.t list list
val to_string : t -> string