k -> Type) | m -> k where
(~~>) = (->)
(~~>) = Natural
infixr 0 ~~>
newtype Natural (a :: j -> k) (b :: j -> k) = Natural { runNatural :: forall (x :: j). a x ~~> b x }
когда включаю StandaloneKindSignatures код ломается и бросает ошибку
Expected kind ‘k -> k -> *’,
but ‘Natural’ has kind ‘(j -> k) -> (j -> k) -> *’
это баг?
да вроде должна быть ошибка и без sks тут всегда должна быть ошибка в ньютайпе, если конечно чет не поменялось в последних ghc, что разрешили неьютапы делать для любых "каиндов"
Там поле вполне себе Type, в чем проблема?
Обсуждают сегодня