module type Desc =sig
..end
type
descriptor
val default : descriptor
type
accumulator
val union : descriptor ->
descriptor ->
accumulator ->
descriptor * accumulator
default
should be a neutral element for union
. union
should
be commutative and associative.