Подсказка по составу функций

просто ищу объяснение, как работает следующая композиция:

(=<<). return

где

(=<<) ::       (a -> m b) -> m a -> m b
return :: a -> m a
(.) :: (b -> c) -> (a -> b) -> a -> c

Окончательный тип:

GHCi> :t (=<<). return
(=<<). return :: Monad m => m b -> m a -> m b

Я не могу понять, как можно сопоставить m a с(а -> м б), т.е. как применить результат return , который является простым типом, к первому аргументу(=<<)ожидаете тип функции?

7
задан Petr Pudlák 20 August 2012 в 06:22
поделиться