Size: a a a

2020 November 28

к

кана in Haskell
то есть не использовать напрямую ParsecT, а сделать свой синоним (или ньютайп как у меня)
источник

Y

Yuuri in Haskell
> It will be easier to add top level signatures like Parser Int where Parser is your parsing monad.
> Working with concrete types with all type variables fixed helps GHC optimize a lot better.
источник

к

кана in Haskell
а тут указано что у тебя не так
источник

к

кана in Haskell
Переслано от кана
у тебя наверное указан конкретный тип ParsecT во всех парсерах
источник

к

кана in Haskell
Переслано от Yuuri
Да
источник

Y

Yuuri in Haskell
У меня type Parser = Parsec Void Text
источник

к

кана in Haskell
ну вот, значит не конкретный
источник

к

кана in Haskell
если тут поменять type Parser = ReaderT (Parsec Void Text)

то все

x :: Parser a
продолжат работать
источник

к

кана in Haskell
покажи конкретный парсер который не работает
источник

Y

Yuuri in Haskell
Я не могу тут поменять :( Там общие парсеры, а Reader только в одном месте нужен
источник

к

кана in Haskell
так не нужно менять нигде ничего, сейчас, 5 сек
источник

к

кана in Haskell
компилируется
источник

к

кана in Haskell
если убрать ask и убрать ReaderT, сигнатура не поменяется
источник

к

кана in Haskell
то есть если это где-то не работает, то это какой-то исключительный кейс или где-то что-то сделано не так
источник

к

кана in Haskell
и тут уже не угадать, если не увидеть код
источник

Y

Yuuri in Haskell
Потому что char полиморфный. А у меня там используются ещё common-парсеры, которые мономорфизированы до моего Parser. Вероятно, не надо их мономорфизировать
источник

к

кана in Haskell
ага, вот в чем дело, нельзя менять именно Parser
источник

Y

Yuuri in Haskell
Ну типа
spaces :: Parser ()
spaces = L.space space1 (L.skipLineComment "//") (L.skipBlockComment "/*" "*/")
источник

к

кана in Haskell
коммон-парсеры можно просто сделать действительно коммон, переписав сигнатуры на MonadParsec
источник

к

кана in Haskell
а то они какие-то не коммон, а под конкретный стек заточены
источник