purescript-0.15.15: tests/purs/failing/QuantificationCheckFailure.purs
-- @shouldFailWith QuantificationCheckFailureInKind
module Main where
data Proxy :: forall k. k -> Type
data Proxy a = Proxy
data Relate :: forall a (b :: a). a -> Proxy b -> Type
data Relate x y = Relate
-- Inferring and generalizing the kind of `d` such that implicitly generalized
-- variables appear first would result in a reference to `a` before `a` is
-- declared. See "Kind Inference for Datatypes" Section 7.2
data T :: forall (a :: Type) (b :: a) (c :: a) d. Relate b d -> Type
data T a = T