Lattice_bounds.Bottomtype 'a t = 'a or_bottommodule Operators : sig ... endOperators
module Make_Datatype
(Domain : Datatype.S) :
Datatype.S with type t = Domain.t or_bottomDatatype constructor
module Bound_Lattice
(Lattice : Lattice_type.Join_Semi_Lattice) :
Lattice_type.Bounded_Join_Semi_Lattice with type t = Lattice.t or_bottomBounds a semi-lattice
val is_bottom : 'a t -> boolAccess
val non_bottom : 'a t -> 'aval value : bottom:'a -> 'a t -> 'aval hash : ('a -> int) -> 'a t -> intDatatype
val pretty_bottom : Format.formatter -> unitPretty-printing
val pretty :
(Format.formatter -> 'a -> unit) ->
Format.formatter ->
'a t ->
unitval iter : ('a -> unit) -> 'a t -> unitval fold : bottom:'b -> ('a -> 'b) -> 'a t -> 'bIn a lattice where the elements are lists of non-bottom values, the empty list is the bottom case.
val to_option : 'a t -> 'a optionConversion
val of_option : 'a option -> 'a tval to_list : 'a t -> 'a listval bot_of_list : 'a list -> 'a list tval list_of_bot : 'a list t -> 'a listval list_values : 'a t list -> 'a listval add_to_list : 'a t -> 'a list -> 'a listelt >:: list adds elt to the list if it is not bottom.