Victor Nazarov wrote: > I think it is more simple like: > > class Bijection a b where > ... > > type LeftToRight a = (Bijection a b) => b > type RightToLeft b = (Bijection a b) => a > Hmm, yes... That looks like it could work.