
19 Dec
2006
19 Dec
'06
9:34 a.m.
On Mon, Dec 18, 2006 at 06:52:41PM -0800, Iavor Diatchki wrote:
Hi David,
I don't think you need functional dependencies or associated type synonyms to get your example to work. In the past, I have used the abstraction that you are describing (I call it an "indexed monad" and it has a nice categorical definition).
The trouble is that your solution doesn't allow you to use do-notation with the IxMonad. And if you did allow yourself to use do-notation by rebinding (>>=), etc, then you wouldn't be able to use ordinary monads with do-notation in the same module. That's what makes things tricky, since an IxMonad is different-kinded from Monad, so you can't make a monad an instance of IxMonad. David