summaryrefslogtreecommitdiff
path: root/testsuite/tests/th/T20773.script
blob: 9b71d0926ecc7a083875e87e0f7fdf036071e3c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
:seti -XDataKinds -XTemplateHaskell
import Language.Haskell.TH
import Data.Proxy

data (:::) = forall k k' . k ::: k'; infixr 5 :::

intT = ConT ''Int
stringT = ConT ''String
boolT = ConT ''Bool

:t Proxy @($(pure $ UInfixT intT '(:::) stringT))

promUInf x y = PromotedUInfixT x (mkName ":::") y
:t Proxy @($(pure $ (intT `promUInf` stringT) `promUInf` boolT))

promInf x y = PromotedInfixT x (mkName ":::") y
:t Proxy @($(pure $ (intT `promInf` stringT) `promInf` boolT))