Bounded package:numhask

The Bounded class is used to name the upper and lower limits of a type. Ord is not a superclass of Bounded since types that are not totally ordered may also have upper and lower bounds. The Bounded class may be derived for any enumeration type; minBound is the first constructor listed in the data declaration and maxBound is the last. Bounded may also be derived for single-constructor datatypes whose constituent types are in Bounded.
Lattices with both bounds
x /\ bottom == x
x \/ top = x
A join-semilattice with an identity element bottom for \/.
x \/ bottom == bottom
A meet-semilattice with an identity element top for /\.
x /\ top == top