
14 Nov
2006
14 Nov
'06
2:31 a.m.
On 11/13/06, Ashley Yakeley
Yes, the Kleisli type "Kleisli a b = a -> m b" is an Arrow. No, it's not the same, since "a -> m b" is not an Arrow on a and b (it's not of the form "arrow a b").
Apparently the type is transparent, though...
Prelude Control.Arrow Control.Monad> :t (return 4) >>> flip replicateM
(return ())
(return 4) >>> flip replicateM (return ()) :: (Monad m) => b -> m [()]
--
Taral