Module Bottom.Top

Lattices in which both top and bottom are managed separately

type 'a or_top_bottom = [
  1. | 'a or_bottom
  2. | `Top
]
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