{-# LANGUAGE GADTs #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE DataKinds #-}
module T14847 where

data Proxy k (a :: k) = MkProxy
data Proxy2 k a = MkP (Proxy k a)

data Proxy2' k a where
  MkP' :: Proxy k a -> Proxy2' k a

data T a where
  T :: Int -> T Bool

type family F a where
  F Int = True
  F _   = False
