, (=<<) -- :: (Monad m) => (a -> m b) -> m a -> m b
, (>=>) -- :: (Monad m) => (a -> m b) -> (b -> m c) -> (a -> m c)
, (<=<) -- :: (Monad m) => (b -> m c) -> (a -> m b) -> (a -> m c)
- , forever -- :: (Monad m) => m a -> m ()
+ , forever -- :: (Monad m) => m a -> m b
-- ** Generalisations of list functions
(<=<) = flip (>=>)
-- | @'forever' act@ repeats the action infinitely.
-forever :: (Monad m) => m a -> m ()
+forever :: (Monad m) => m a -> m b
forever a = a >> forever a
-- -----------------------------------------------------------------------------