sig
  val maybe_tuppel :
    f:('-> '-> 'c) ->
    fa:('-> 'c) -> fb:('-> 'c) -> 'a option -> 'b option -> 'c option
  val maybe_cmp : ('-> '-> int) -> 'a option -> 'a option -> int
  val maybe_equal : ('-> '-> bool) -> 'a option -> 'a option -> bool
  val maybe_string : ('-> string) -> 'a option -> string
  val bind :
    f1:('-> bool option) ->
    f2:('-> bool option) -> '-> '-> bool option
  val doo : ('-> 'b) -> 'a option -> 'b option
end