Hi & thanks for your answers Manuel,

Using your idea of separating the lattice and conversion from the
definition of multiplication, you can at least save yourself the class
instances:

Ok

  type family Join a b :: *

Aah, meet and join but of course - memory memory memory seems
to get easily corrupted... :)


is more flexible, as I am sure there are other applications, where we
don't want a lattice, but some other structure.

Yes, and then there can be cases where we don't know exactly, what we want
or there are situations where two almost but not identical structures are needed.

   http://www.cse.unsw.edu.au/~pls/thesis/aja-thesis.pdf

Thanks again! I'll try to read it quite soon.

--
br,
Isto