blob: c1de6e8642fd042d137b5a0df44f6545531624dd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
{-# LANGUAGE TemplateHaskell, KindSignatures, FlexibleInstances #-}
module T5452 where
import Language.Haskell.TH hiding (Type)
import Data.Kind (Type)
class C (f :: Type -> Type)
class D (f :: Type -> Type)
instance C ((,) Int)
$(do { ClassI _ [inst_dec] <- reify ''C
; let InstanceD o cxt (AppT _ ty) _ = inst_dec
; return [InstanceD o cxt
(foldl AppT (ConT ''D) [ty])
[]
] })
|