Module Lattice_bounds.Top
include Monad.S_with_product with type 'a t = 'a or_top
val flatten : 'a t t -> 'a tval map : ('a -> 'b) -> 'a t -> 'b tval bind : ('a -> 'b t) -> 'a t -> 'b tval product : 'a t -> 'b t -> ('a * 'b) tmodule Bool : sig ... endmodule List : sig ... endval is_top : 'a t -> boolval value : top:'a -> 'a t -> 'aval hash : ('a -> int) -> 'a t -> intval equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> boolval compare : ('a -> 'a -> int) -> 'a t -> 'a t -> intval is_included : ('a -> 'b -> bool) -> 'a t -> 'b t -> boolval join : ('a -> 'a -> 'a t) -> 'a t -> 'a t -> 'a tval narrow : ('a -> 'a -> 'a) -> 'a t -> 'a t -> 'a tval iter : ('a -> unit) -> 'a t -> unitval to_option : 'a t -> 'a optionval of_option : 'a option -> 'a t