blob: 1db3b0840c39ca5286744189a8871fe330244301 (
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
34
35
36
37
38
39
|
{-# LANGUAGE TemplateHaskell, GADTs, ExplicitForAll, KindSignatures #-}
module T10828b where
import Language.Haskell.TH
import System.IO
-- attempting to mix GADT and normal constructors
$( return
[ DataD [] (mkName "T")
[ PlainTV (mkName "a") ]
(Just StarT)
[ NormalC
(mkName "MkT")
[ ( Bang NoSourceUnpackedness NoSourceStrictness
, VarT (mkName "a")
)
, ( Bang NoSourceUnpackedness NoSourceStrictness
, VarT (mkName "a")
)
]
, ForallC [PlainTV (mkName "a")]
[AppT (AppT EqualityT (VarT $ mkName "a" ) )
(ConT $ mkName "Int") ] $
RecGadtC
[ (mkName "MkC")]
[ ( mkName "foo"
, Bang NoSourceUnpackedness NoSourceStrictness
, VarT (mkName "a")
)
, ( mkName "bar"
, Bang NoSourceUnpackedness NoSourceStrictness
, VarT (mkName "b")
)
]
(AppT (ConT (mkName "T"))
(ConT (mkName "Int")))
]
[] ])
|