
On 2006-09-12, Jacques Carette
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.
I'm afraid I don't see the relevance.
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.
Computer programming is of course extremely nominal to provide abstraction and seperation of concerns. Yes, anonymous functions are handy, but I could give them up if I had named local functions. Yes, you can even go to unlambda and only use combinators. Practically we find names extremely useful.
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 sounds neat, but I'd be worried about how cumbersome it was in practice.
This is an old conversation, see http://www.haskell.org/pipermail/haskell/2005-October/016621.html for example.
Thanks. The ML interface paper looks quite interesting. Are you aware of any implementations? -- Aaron Denney -><-