Module Bottom.Top

module Top: sig .. end
Lattices in which both top and bottom are managed separately

type 'a or_top_bottom = [ `Bottom | `Top | `Value of 'a ] 
val join : ('a -> 'a -> 'a) ->
'a or_top_bottom ->
'a or_top_bottom -> 'a or_top_bottom
val narrow : ('a -> 'a -> 'a or_bottom) ->
'a or_top_bottom ->
'a or_top_bottom -> 'a or_top_bottom