First, as already pointed out in
http://www.haskell.org/pipermail/haskell-cafe/2006-April/015404.html
there is a lot of relevant previous work in this area.

Aaron Denney wrote:
I know of no good way to express that a given data type obeys the
same interface two (or more) ways.  Some OO languages try to handle the
case of of an abstract base class being inherited twice through two
different intermediate classes, but none of them do it well.
This is very easy to do in 'raw' category theory, as concepts are not _nominal_, so a functor from one type to another can explicitly do a renaming if necessary. Various algebraic specification languages have thus adopted this too, so that you are not forced to give unique names to all your concepts, you can in fact give them meaningful names 'in context', and use a remapping when you want to say that you obey a particular interface.

This is an old conversation, see
http://www.haskell.org/pipermail/haskell/2005-October/016621.html
for example.

Jacques
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to