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)
|