Travesty.State_typesmodule type Generic = sig ... endGeneric contains the signature bits common to all state monad signatures.
module type S = sig ... endS is the signature of state monads parametrised over their value, but with a fixed state type.
module type S2 = sig ... endS2 is the signature of state monads parametrised over both value and state types.