
Iavor S. Diatchki wrote:
Ron de Bruijn wrote:
I am pretty sure, that >>= is to monads what * is to for example natural numbers, but I don't know what the inverse of >>= is. And I can't really find it anywhere on the web(papers, websites, not a single sole does mention it.
this is not quie correct. (join & return) for a monad are like (*,1) or (+,0) for the set of integers. however those operations on integers have more structure than join and return.
there is no operation for "inverse". in mathematical terms: monads are a monoid (given that the notion is generalized considerably from its usual use), and not a group. if one was to add such an operation (i am not sure what it would do), but it would be of type: inverse :: M a -> M a (and of course must satisfy some laws)
I have *nothing* to add, just a question. Do you /anybody/ know of any edible work on ADJUNCTIONS in the context of Haskell structures? Perhaps instead of searching for 'inverses' one should think more about adjoints?... Jerzy Karczmarczuk