sig
  val ( ++ ) : t -> elt -> t
  val ( -- ) : t -> elt -> t
  val ( +++ ) : t -> elt option -> t
  val ( --- ) : t -> elt option -> t
end