summaryrefslogtreecommitdiff
path: root/testsuite/tests/th/T10267.hs
blob: 45636bf295c9e44ab7401d711a164cdc25b8cf0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{-# LANGUAGE TemplateHaskell #-}

module T10267 where

import Language.Haskell.TH
import T10267a

[d| i :: a -> a
    i = _foo

    j :: a -> a
    j x = _ |]

$(return [
   SigD (mkName "k")
        (ForallT [PlainTV (mkName "a") SpecifiedSpec]
                 []
                 (AppT (AppT ArrowT (VarT (mkName "a"))) (VarT (mkName "a"))))
 , FunD (mkName "k")
        [Clause [] (NormalB (UnboundVarE (mkName "_foo"))) []]
 ])

$(return [
   SigD (mkName "l")
        (ForallT [PlainTV (mkName "a") SpecifiedSpec]
                 []
                 (AppT (AppT ArrowT (VarT (mkName "a"))) (VarT (mkName "a"))))
 , FunD (mkName "l")
        [Clause [VarP (mkName "x")] (NormalB (UnboundVarE (mkName "_"))) []]
 ])

foo :: a -> a
foo x = $varX