summaryrefslogtreecommitdiff
path: root/testsuite/tests/ghc-regress/deriving/should_compile/T3965.hs
blob: 2ccaaadfdf3dbb98a0b949c30759ec38332f6859 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{-# LANGUAGE DeriveDataTypeable, FlexibleContexts, StandaloneDeriving, TypeOperators, UndecidableInstances #-}
module T3965 where

import Data.Data

data T f e = Inl (f e) deriving (Data, Eq)

instance (Typeable1 f) => Typeable1 (T f) where
  typeOf1 _ = error "urk"

newtype Expr f = In (f (Expr f))
instance Typeable1 f => Typeable (Expr f) where
  typeOf _ = error "urk"

deriving instance (Typeable1 a, Data (a (Expr a))) => Data (Expr a)

data Var e = Var String deriving (Data, Eq, Typeable)

data Domain e g = Domain
    (Expr (T Var))
    deriving (Data, Typeable)