モナドとかの演算子の型

(>>=)      :: Monad m       => m a -> (a -> m b) -> m b
flip (>>=) :: Monad m       => (a -> m b) -> m a -> m b
(=<<)      :: Monad m       => (a -> m b) -> m a -> m b
ap         :: Monad m       => m (a -> b) -> m a -> m b
(<*>)      :: Applicative f => f (a -> b) -> f a -> f b
flip (<**>):: Applicative f => f (a -> b) -> f a -> f b
(<**>)     :: Applicative f => f a -> f (a -> b) -> f b
(<$>)      :: Functor f     =>   (a -> b) -> f a -> f b
fmap       :: Functor f     =>   (a -> b) -> f a -> f b
map        ::                    (a -> b) -> [a] -> [b]
mapM       :: Monad m       => (a -> m b) -> [a] -> m [b]
flip forM  :: Monad m       => (a -> m b) -> [a] -> m [b]
forM       :: Monad m       => [a] -> (a -> m b) -> m [b]

おまけ

(>>)  :: Monad       m => m a -> m b -> m b
(*>)  :: Applicative f => f a -> f b -> f b
(<*)  :: Applicative f => f a -> f b -> f a
(<$)  :: Functor     f =>   a -> f b -> f a
(<|>) :: Alternative f => f a -> f a -> f a

ちなみに do とか do ブロック内の <- は演算子でも関数でもないみたい。