a (b :: a). a -> ()
f = ()
f @Bool @True False
"a" тут каинд, тип? Или сразу и то и то?
f :: forall a -> forall (b :: a) -> a -> () f = () f Bool True False
Уже UnifiedNamespaces впилили? Как Bool попадёт на term-level?
https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0281-visible-forall.rst#part-ii-definitions
определение неправильное
поправил, но у тебя тоже
А если расширения не включать?
а если расширения не включать, то это не изменит язык, а просто добавит синтаксических проверок, сужающих его
Но тогда различие будет?
Обсуждают сегодня