Свершилось!

Mar 27, 2015 12:08

GHC 7.10.1 :

class Applicative m => Monad m where
...
return :: a -> m a
return = pure
...
-- оставили как было (по социальным причинам :)
-- (>>) :: forall a b. m a -> m b -> m b
-- (>>) = (*>)
...
https://hackage

ghc, haskell, fp

Leave a comment

Comments 8

sassa_nf March 27 2015, 09:46:41 UTC
"-- оставили как было (по социальным причинам :)
-- (>>) :: forall a b. m a -> m b -> m b
-- (>>) = (*>)"

а здесь нужно было что-то исправить?

Reply

voidex March 27 2015, 10:40:53 UTC
Там ж на деле m >> k = m >>= \_ -> k

Reply

sassa_nf March 27 2015, 11:17:11 UTC
(*>) и (>>) равны, вообще-то. Но deni_ok объяснил. Минимальное объявление монады - return и (>>=), а апликатива - pure и (<*>). Тогда поскольку народ не определяет (>>) для монад и исторически определяют (*>) для монад как (>>), получится бесконечная рекурсия.

Reply

voidex March 27 2015, 12:19:36 UTC
Так а мой комментарий не о том, что не равны, а о том, что в посте - одно, а в base - другое.

Reply


nivanych March 27 2015, 11:55:08 UTC
Давно такого не было, чтоб после .1-версии оставалось всего 10 багов.
https://ghc.haskell.org/trac/ghc/milestone/7.10.2?by=type
Постарались, молодцы!
Это вовсе не плохо, что затянули релиз.

Reply


jakobz March 27 2015, 12:24:50 UTC
А в do-нотацию добавили разворачивание в Applicative?

Reply


Leave a comment

Up