sig
  type 'a or_bottom = [ `Bottom | `Value of 'a ]
  val ( >>- ) :
    'a Bottom.Type.or_bottom ->
    ('a -> 'b Bottom.Type.or_bottom) -> 'b Bottom.Type.or_bottom
  val ( >>-: ) :
    'a Bottom.Type.or_bottom -> ('a -> 'b) -> 'b Bottom.Type.or_bottom
end