sig
  val ( -- ) : int -> int -> int Sequence.t
  val ( --^ ) : int -> int -> int Sequence.t
  val ( >>= ) : 'Sequence.t -> ('-> 'Sequence.t) -> 'Sequence.t
  val ( >|= ) : 'Sequence.t -> ('-> 'b) -> 'Sequence.t
  val ( <*> ) : ('-> 'b) Sequence.t -> 'Sequence.t -> 'Sequence.t
  val ( <+> ) : 'Sequence.t -> 'Sequence.t -> 'Sequence.t
end