exists-0.1: Data/Anything.hs
{-# 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"