sig
  val ( -- ) : int -> int -> (int, [ `Any ]) OLinq.t
  val ( >|= ) :
    ('a, [< `Any | `AtMostOne | `One ] as 'c) OLinq.t ->
    ('-> 'b) -> ('b, 'c) OLinq.t
  val ( <*> ) :
    ('-> 'b, [< `Any | `AtMostOne | `One ] as 'c) OLinq.t ->
    ('a, 'c) OLinq.t -> ('b, 'c) OLinq.t
  val ( >>= ) :
    ('a, [< `Any | `AtMostOne | `One ]) OLinq.t ->
    ('-> ('b, [< `Any | `AtMostOne | `One ]) OLinq.t) ->
    ('b, [ `Any ]) OLinq.t
end