if we use typeclasses, this is better
add poset typeclass
complete upper semi lattice def
enforce upper semilattice in target calculus
add questionable definition of values
begin to add axioms