почему тип текста.Парсек.Знак.естественно не то же самое между Hoogle и что показал с:т?


Я искал Text.Parsec.Token.natural на Hoogle и нашел тип Text.Parsec.Token.natural is natural :: ParsecT s u m Integer.

Но это противоречит тому, что я получил с :t в GHCi.

GHCi дает такой тип:

Prelude Text.Parsec.Token> :t natural
natural
  :: GenTokenParser s u m -> Text.Parsec.Prim.ParsecT s u m Integer

И не только натуральные, но и целочисленные, плавающие, десятичные и т. д.

1 4

1 ответ:

natural является именованным полем типа данныхGenTokenParser s u m. Это поле имеет тип ParsecT s u m Integer; прокрутите вниз, чтобы найти его.

Функция natural получает доступ к этому полю из любого значения GenTokenParser s u m, отсюда и тип.