summaryrefslogtreecommitdiff
path: root/testsuite/tests/th/T5452.hs
blob: de6a1771f7e54ab9a57eaaf3580d89470b65c06c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{-# LANGUAGE TemplateHaskell, KindSignatures, FlexibleInstances #-}

module T5452 where
import Language.Haskell.TH

class C (f :: * -> *)
class D (f :: * -> *)

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]) 
                         []
              ] })