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