Denotational design with type class morphisms
conal.net