HB-      !"#$%&'()*+, Safe-InferredRWrapper used to mark where we expect to use the fact that something is Enumerable Finitely enumerable things -./0123 -./0123 Safe-InferredA partial ordering on sets:  2http://en.wikipedia.org/wiki/Partially_ordered_set XThis can be defined using either |joinLeq| or |meetLeq|, or a more efficient definition  can be derived directly. Reflexive: a  a  Antisymmetric: a  b && b  a ==> a == b  Transitive: a  b && b  c ==> a  c ZThe superclass equality (which can be defined using |partialOrdEq|) must obey these laws: Reflexive: a == a  Transitive: a == b && b == c ==> a == b =The equality relation induced by the partial-order structure \Least point of a partially ordered monotone function. Checks that the function is monotone. eLeast point of a partially ordered monotone function. Does not checks that the function is monotone. eGreatest fixed point of a partially ordered antinone function. Checks that the function is antinone. mGreatest fixed point of a partially ordered antinone function. Does not check that the function is antinone.  4 56789:;<   4 56789:;< Safe-Inferred Lattices with both bounds 0A meet-semilattice with some element |top| that  approaches.  Identity: x  top == x 3A join-semilattice with some element |bottom| that  approaches.  Identity: x  bottom == x RThe combination of two semi lattices makes a lattice if the absorption law holds:  see  +http://en.wikipedia.org/wiki/Absorption_law and  ,http://en.wikipedia.org/wiki/Lattice_(order) Absorption: a  (a  b) == a  (a  b) == a *A algebraic structure with element meets:  (http://en.wikipedia.org/wiki/Semilattice Associativity: x  (y  z) == (x  y)  z  Commutativity: x  y == y  x  Idempotency: x  x == x *A algebraic structure with element joins:  (http://en.wikipedia.org/wiki/Semilattice Associativity: x  (y  z) == (x  y)  z  Commutativity: x  y == y  x  Idempotency: x  x == x ?The partial ordering induced by the join-semilattice structure LThe join of at a list of join-semilattice elements (of length at least one) ?The partial ordering induced by the meet-semilattice structure LThe meet of at a list of meet-semilattice elements (of length at least one) 0The join of a list of join-semilattice elements 0The meet of a list of meet-semilattice elements -Implementation of Kleene fixed-point theorem  7http://en.wikipedia.org/wiki/Kleene_fixed-point_theorem. N Assumes that the function is monotone and does not check if that is correct. -Implementation of Kleene fixed-point theorem  7http://en.wikipedia.org/wiki/Kleene_fixed-point_theorem. % Forces the function to be monotone. -Implementation of Kleene fixed-point theorem  7http://en.wikipedia.org/wiki/Kleene_fixed-point_theorem. % Forces the function to be monotone. -Implementation of Kleene fixed-point theorem  7http://en.wikipedia.org/wiki/Kleene_fixed-point_theorem. N Assumes that the function is antinone and does not check if that is correct. !-Implementation of Kleene fixed-point theorem  7http://en.wikipedia.org/wiki/Kleene_fixed-point_theorem. % Forces the function to be antinone. "-Implementation of Kleene fixed-point theorem  7http://en.wikipedia.org/wiki/Kleene_fixed-point_theorem. % Forces the function to be antinone. 8  !"=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^  !" !" 4  !"=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^ Safe-Inferred#:Graft a distinct top onto an otherwise unbounded lattice. @ As a bonus, the top will be an absorbing element for the join. #$%_`abcd#$%#%$#%$_`abcd Safe-Inferred&EGraft a distinct top and bottom onto an otherwise unbounded lattice. P The top is the absorbing element for the join, and the bottom is the absorbing  element for the meet. &'()efghij&'()&)('&)('efghij Safe-Inferred*=Graft a distinct bottom onto an otherwise unbounded lattice. C As a bonus, the bottom will be an absorbing element for the meet. *+,klmnop*+,*,+*,+klmnopq      !"#$%&'()*+,)-+./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrslattices-1.2.1.1Algebra.EnumerableAlgebra.PartialOrdAlgebra.LatticeAlgebra.Lattice.DroppedAlgebra.Lattice.LevitatedAlgebra.Lattice.Lifted Enumerated unEnumerated EnumerableuniverseuniverseBounded PartialOrdleq partialOrdEqlfpFrom unsafeLfpFromgfpFrom unsafeGfpFromBoundedLatticeBoundedMeetSemiLatticetopBoundedJoinSemiLatticebottomLatticeMeetSemiLatticemeetJoinSemiLatticejoinjoinLeqjoins1meetLeqmeets1joinsmeets unsafeLfplfp unsafeGfpgfpDroppedDropTop LevitatedBottomLevitateLiftedLift$fEnumerable(,)$fEnumerable()$fEnumerableEither$fEnumerableMaybe$fEnumerableInt$fEnumerableBool$fEnumerableEnumeratedlfpFrom'gfpFrom'$fPartialOrd(,)$fPartialOrd(->)$fEq(->)$fPartialOrdIntMap$fPartialOrdMap$fPartialOrdIntSet$fPartialOrdSet$fBoundedLatticeBool$fBoundedMeetSemiLatticeBool$fBoundedJoinSemiLatticeBool $fLatticeBool$fMeetSemiLatticeBool$fJoinSemiLatticeBool$fBoundedLattice(,)$fBoundedMeetSemiLattice(,)$fBoundedJoinSemiLattice(,) $fLattice(,)$fMeetSemiLattice(,)$fJoinSemiLattice(,)$fBoundedLattice(->)$fBoundedMeetSemiLattice(->)$fBoundedJoinSemiLattice(->) $fLattice(->)$fMeetSemiLattice(->)$fJoinSemiLattice(->)$fBoundedJoinSemiLatticeIntMap$fJoinSemiLatticeIntMap$fBoundedLatticeMap$fBoundedMeetSemiLatticeMap$fBoundedJoinSemiLatticeMap $fLatticeMap$fMeetSemiLatticeMap$fJoinSemiLatticeMap$fBoundedJoinSemiLatticeIntSet$fJoinSemiLatticeIntSet$fBoundedLatticeSet$fBoundedMeetSemiLatticeSet$fBoundedJoinSemiLatticeSet $fLatticeSet$fMeetSemiLatticeSet$fJoinSemiLatticeSet$fBoundedLatticeDropped$fBoundedMeetSemiLatticeDropped$fBoundedJoinSemiLatticeDropped$fLatticeDropped$fMeetSemiLatticeDropped$fJoinSemiLatticeDropped$fBoundedLatticeLevitated!$fBoundedMeetSemiLatticeLevitated!$fBoundedJoinSemiLatticeLevitated$fLatticeLevitated$fMeetSemiLatticeLevitated$fJoinSemiLatticeLevitated$fBoundedLatticeLifted$fBoundedMeetSemiLatticeLifted$fBoundedJoinSemiLatticeLifted$fLatticeLifted$fMeetSemiLatticeLifted$fJoinSemiLatticeLifted