sig   type base_u   type u   type t = private BatBounded.S.u   val bounds :     BatBounded.S.base_u BatBounded.bound_t *     BatBounded.S.base_u BatBounded.bound_t   val make : BatBounded.S.base_u -> BatBounded.S.t   external extract : BatBounded.S.t -> BatBounded.S.u = "%identity"   val map :     (BatBounded.S.base_u -> BatBounded.S.base_u) ->     BatBounded.S.t -> BatBounded.S.t option   val map2 :     (BatBounded.S.base_u -> BatBounded.S.base_u -> BatBounded.S.base_u) ->     BatBounded.S.t -> BatBounded.S.t -> BatBounded.S.t option   val map_exn :     (BatBounded.S.base_u -> BatBounded.S.base_u) ->     BatBounded.S.t -> BatBounded.S.t   val map2_exn :     (BatBounded.S.base_u -> BatBounded.S.base_u -> BatBounded.S.base_u) ->     BatBounded.S.t -> BatBounded.S.t -> BatBounded.S.t end