Tue Aug 16 19:36:19 CEST 2011

Arrow to Monad

Now, can this be used to go from Arrow to Monad?

ssmKleisli :: (a -> SSM () b) -> SSM a b  
instance Monad (SSM ()) where
  return x = arr $ \() -> x
  (>>=) ma f = ma (.) (ssmKleisl f) where

So the answer seems to be yes, if the same "unpacking" problem can be
solved.  So it looks like I ca't work around it, only attack it at the