blob: d6c08b0a433dcebb7adea7ceb1544dd53f48b536 (
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
|
T10598_TH.hs:(27,2)-(42,51): Splicing declarations
do fooDataName <- newName "Foo"
mkFooConName <- newName "MkFoo"
let fooType = conT fooDataName
sequence
[newtypeD
(cxt []) fooDataName [] Nothing
(normalC
mkFooConName
[bangType
(bang noSourceUnpackedness noSourceStrictness) [t| Int |]])
[derivClause (Just StockStrategy) [[t| Eq |]],
derivClause (Just AnyclassStrategy) [[t| C |]],
derivClause (Just NewtypeStrategy) [[t| Read |]]],
standaloneDerivWithStrategyD
(Just StockStrategy) (cxt [])
[t| Ord $(fooType) |]
pending(rn) [<splice, fooType>],
standaloneDerivWithStrategyD
(Just AnyclassStrategy) (cxt [])
[t| D $(fooType) |]
pending(rn) [<splice, fooType>],
standaloneDerivWithStrategyD
(Just NewtypeStrategy) (cxt [])
[t| Show $(fooType) |]
pending(rn) [<splice, fooType>]]
======>
newtype Foo
= MkFoo Int
deriving stock Eq
deriving anyclass C
deriving newtype Read
deriving stock instance Ord Foo
deriving anyclass instance D Foo
deriving newtype instance Show Foo
|