A type that represents values with two possibilities.
Either can be seen as a generic sum type, the dual of Tuple. First is neither
more important nor less important than Second.
Many functions in Either focus on just one constructor. The Focused signature
abstracts over which constructor is the focus. To use these functions, use the
First or Second modules in S.
module type Focused : sig ... endmodule type Either : sig ... end