モナドとかの演算子の型
(>>=) :: 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 ブロック内の <- は演算子でも関数でもないみたい。