MONOID signature
    The MONOID signature establishes a type $t$ along
    with an associative binary function $f$ and identity $I$ such that
    $(t, f, I)$ is a monoid.
  
type t
val I : t
val f : t * t → t
val toString : t → stringtype tval I :
      t
    val f :
      t * t → t
    val toString :
      t → string