1
Учитывая следующий Typeclassopedia упражнения:Монада Transformer «распространять» Функция
--Implement join :: M (N (M (N a))) -> M (N a),
--given distrib :: N (M a) -> M (N a) and
--assuming M and N are instances of Monad.
distrib :: (Monad m, Monad n) => n (m a) => m (n a)
distrib = undefined
я получаю ошибку времени компиляции.
ghci> :l MonadTransformers.hs
[1 of 1] Compiling Main (MonadTransformers.hs, interpreted)
MonadTransformers.hs:7:34:
Expected a constraint, but `n (m a)' has kind `*'
In the type signature for `distrib':
distrib :: (Monad m, Monad n) => n (m a) => m (n a)
Failed, modules loaded: none.
Как его разрешить?
виню Scala ~~ ~~ (я) для '=>'. Спасибо –
Кевин Мередит: Да, я думаю, это не помогает в Scala, ограничения (неявные) аргументы. – rampion
Являются ли ограничения разрешены как имплицитные в Haskell? –