{-# LANGUAGE GADTs, DeriveDataTypeable #-} -- | Useless existential datatypes holding evidence of no constraint. module Data.Anything where import Data.Typeable -- | A datatype containing anything. You can't do anything with it. data Anything where Anything :: a -> Anything deriving Typeable -- | A datatype containing any @* -> *@ kinded type constructor applied to 'a'. You can't do anything with it. data Anything1 a where Anything1 :: f a -> Anything1 a deriving Typeable instance Show Anything where show = const "Anything" instance Show (Anything1 a) where show = const "Anything1"