In Haskell, warum Typ-Signatur von forever
Haskell `forever` Art Signatur
forever :: Monad m => m a -> m b
Insbesondere, warum ist es nicht nur :: Monad m => m a -> m a
? Sicherlich die Art von Monade, auf die wir handeln, ändert sich nicht auf halbem Weg forever
?
Eine Funktion wie:
forever' :: Monad m => m a -> m a
forever' = forever
scheint genau das gleiche zu arbeiten.
Die Art der Monade ist 'm' und es ändert sich nicht:
In diesen Tagen sollte es wohl anders definiert werden. Was sich ändert, ist der Ergebnistyp "b". –