blob: 009d0f035c2b12063f1a3114516df2c88d9aec1f (
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")]
[]
(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")]
[]
(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
|