Parameter Product.B

type t
val empty : t

Must be the identity of combine:

  • combine empty t = t
  • combine t empty = t
val combine : t -> t -> t

Must be associative:

  • combine a (combine b c) = combine (combine a b) c