В Haskell почему типа подписи forever
Haskell `forever` тип подписи
forever :: Monad m => m a -> m b
В частности, почему это не просто :: Monad m => m a -> m a
? Несомненно, тип монады, на которую мы действуем, не меняется на полпути через forever
?
функции, такие как:
forever' :: Monad m => m a -> m a
forever' = forever
, кажется, работает точно так же.
Тип монады 'M' и это не меняет. Какие изменения имеет тип результата 'b'. –