-> (a -> b)) -> (w -> a) -> w -> b
Разве не должно (w -> (a -> b)) быть записано как (w -> a -> b)? Это баг, или тут есть некий тайный смысл?
Это одно и то же
Вот именно, но для функций обычно скобки раскрывают с учётом правоассоциативности ->. А тут они остались. Похоже, в записи f (a -> b) -> f a -> f b просто заменили f, не смотря, есть ли в записи аргумента скобки. То есть это просто особенность реализации.
в этом месте вывод типов не постарался упростить запись, но в этом нет ничего страшного
а в 9.6.5 вот так ( ghci> :t (<*>) @((->)_) <interactive>:1:1: error: Illegal visible type application ‘@((->) _)’ Perhaps you intended to use TypeApplications
Ясно, что не страшно. А где в документации написано, в каких случаях он упрощает и не упрощает? Насколько понимаю, нормализованный тип в :k! посмотреть.
Написано, что у вас расширение TypeApplications не включено.
kind! дальше идёт — подставляет синонимы. а запись скобок оптимизировать — это, кажется, такой пустяк, что врядли где-то описано
Это я видел, просто думал, что в стандарте..
TypeApplications входит в стандарт GHC2021, наверно, у тебя по умолчанию другой стандарт включён
да 2010, стоит сменить ?
да, на GHC2021
А вот вписать в кабал файл не получается, пока нашел только cabal init -i тогда говорят предложит.... Но странно, что нельзя поменять настройку в файле, или я опять где то туплю ?
https://cabal.readthedocs.io/en/stable/cabal-package-description-file.html#pkg-field-default-language
Обсуждают сегодня