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
|