{-# LANGUAGE TypeData #-} {-# LANGUAGE TypeFamilies #-} module TDExistential where import Data.Kind (Type) -- example from GHC User's Guide 6.4.10.6 type data Ex :: Type where MkEx :: forall a. a -> Ex type family UnEx (ex :: Ex) :: k type instance UnEx (MkEx x) = x