Я читаю LYAH, а в главе 9 я нашел любопытную проблему. Автор представляет пример реализации функции «randoms»: randoms' :: (RandomGen g, Random a) => g -> [a]
randoms' gen = let (value, newGen) = ran
Например, ParsecT имеет множество переменных типа в своем определении. newtype ParsecT s u m a
= ParsecT {unParser :: forall b .
State s u
-> (a -> State s u -> ParseError -> m b)