Support.Alternative
module type ALTERNATIVE = sig ... end
Module type for abstract datatypes with an associative operator and a left and right identity element for choosing between values.