blob: 55d8889009986a54bd2e517e9ae715bfcf51de2b (
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
|
{-# 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")
[ (NotStrict, VarT (mkName "a"))
, (NotStrict, VarT (mkName "a"))]
, ForallC [PlainTV (mkName "a")]
[AppT (AppT EqualityT (VarT $ mkName "a" ) )
(ConT $ mkName "Int") ] $
RecGadtC [(mkName "MkC")]
[ (mkName "foo", NotStrict, VarT (mkName "a"))
, (mkName "bar", NotStrict, VarT (mkName "b"))]
( mkName "T" )
[ ConT (mkName "Int") ]
]
[] ])
|