module Bottom:sig
..end
type'a
t ='a Lattice_bounds.or_bottom
module Operators:sig
..end
Operators
module Make_Datatype:
Datatype constructor
module Bound_Lattice:functor (
Lattice
:
Lattice_type.Join_Semi_Lattice
) ->
Lattice_type.Bounded_Join_Semi_Lattice
with type t = Lattice.t or_bottom
Bounds a semi-lattice
val is_bottom : 'a t -> bool
Access
val non_bottom : 'a t -> 'a
val value : bottom:'a -> 'a t -> 'a
val hash : ('a -> int) -> 'a t -> int
Datatype
val equal : ('a -> 'a -> bool) ->
'a t -> 'a t -> bool
val compare : ('a -> 'a -> int) ->
'a t -> 'a t -> int
val pretty_bottom : Stdlib.Format.formatter -> unit
Pretty-printing
val pretty : (Stdlib.Format.formatter -> 'a -> unit) ->
Stdlib.Format.formatter -> 'a t -> unit
val is_included : ('a -> 'b -> bool) ->
'a t -> 'b t -> bool
val join : ('a -> 'a -> 'a) ->
'a t ->
'a t -> 'a t
val join_list : ('a -> 'a -> 'a) ->
'a t list -> 'a t
val narrow : ('a -> 'a -> 'a t) ->
'a t ->
'a t -> 'a t
val iter : ('a -> unit) -> 'a t -> unit
val fold : bottom:'b -> ('a -> 'b) -> 'a t -> 'b
val map : ('a -> 'b) -> 'a t -> 'b t
val zip : 'a t ->
'b t -> ('a * 'b) t
In a lattice where the elements are lists of non-bottom values, the empty list is the bottom case.
val to_option : 'a t -> 'a option
Conversion
val of_option : 'a option -> 'a t
val to_list : 'a t -> 'a list
val bot_of_list : 'a list -> 'a list t
val list_of_bot : 'a list t -> 'a list
val list_values : 'a t list -> 'a list
val add_to_list : 'a t -> 'a list -> 'a list
elt >:: list
adds elt
to the list
if it is not bottom.