added runKleisli as suggested by David Menendez
-- | Kleisli arrows of a monad.
-- | Kleisli arrows of a monad.
-newtype Kleisli m a b = Kleisli (a -> m b)
+newtype Kleisli m a b = Kleisli { runKleisli :: a -> m b }
instance Monad m => Arrow (Kleisli m) where
arr f = Kleisli (return . f)
instance Monad m => Arrow (Kleisli m) where
arr f = Kleisli (return . f)