summaryrefslogtreecommitdiff
path: root/testsuite/tests/deriving/should_compile/drv-empty-data.hs
blob: 0383b29dbbb2b34e47bd29bb5e1ee8bfea345187 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{-# LANGUAGE Haskell2010 #-}
{-# LANGUAGE RoleAnnotations #-}
{-# LANGUAGE DeriveTraversable, DeriveGeneric, EmptyCase,
    DeriveDataTypeable, StandaloneDeriving, DeriveLift #-}

module DrvEmptyData where
import GHC.Generics (Generic, Generic1)
import Data.Data (Data)
import Language.Haskell.TH.Syntax (Lift)

data Void a deriving (Functor, Foldable, Traversable, Generic, Generic1, Lift)

-- We don't want to invoke the special case for phantom types here.
type role Void nominal

deriving instance Data a => Data (Void a)
deriving instance Eq (Void a)
deriving instance Ord (Void a)
deriving instance Show (Void a)
deriving instance Read (Void a)