on master help sign in
Benchmark AesonCompareAutoInstances: Use Int fields in constructors
03b7013Bas van Dijk
benchmarks/AesonCompareAutoInstances.hs+25−25
@@ -25,7 +25,7 @@ data D a = Nullary
25 | Record { testOne :: Double
25 | Record { testOne :: Double
26 , testTwo :: Bool
26 , testTwo :: Bool
27 , testThree :: D a
27 , testThree :: D a
28− } deriving (Eq, Generic, Data, Typeable)
28+ } deriving (Show, Eq, Generic, Data, Typeable)
29
29
30instance NFData a => NFData (D a) where
30instance NFData a => NFData (D a) where
31 rnf Nullary = ()
31 rnf Nullary = ()
@@ -62,20 +62,20 @@ thDFromJSON = parse thDParseJSON
62--------------------------------------------------------------------------------
62--------------------------------------------------------------------------------
63
63
64data BigRecord = BigRecord
64data BigRecord = BigRecord
65− { field01 :: !(), field02 :: !(), field03 :: !(), field04 :: !(), field05 :: !()
65+ { field01 :: !Int, field02 :: !Int, field03 :: !Int, field04 :: !Int, field05 :: !Int
66− , field06 :: !(), field07 :: !(), field08 :: !(), field09 :: !(), field10 :: !()
66+ , field06 :: !Int, field07 :: !Int, field08 :: !Int, field09 :: !Int, field10 :: !Int
67− , field11 :: !(), field12 :: !(), field13 :: !(), field14 :: !(), field15 :: !()
67+ , field11 :: !Int, field12 :: !Int, field13 :: !Int, field14 :: !Int, field15 :: !Int
68− , field16 :: !(), field17 :: !(), field18 :: !(), field19 :: !(), field20 :: !()
68+ , field16 :: !Int, field17 :: !Int, field18 :: !Int, field19 :: !Int, field20 :: !Int
69− , field21 :: !(), field22 :: !(), field23 :: !(), field24 :: !(), field25 :: !()
69+ , field21 :: !Int, field22 :: !Int, field23 :: !Int, field24 :: !Int, field25 :: !Int
70− } deriving (Eq, Generic, Data, Typeable)
70+ } deriving (Show, Eq, Generic, Data, Typeable)
71
71
72instance NFData BigRecord
72instance NFData BigRecord
73
73
74−bigRecord = BigRecord () () () () ()
74+bigRecord = BigRecord 1 2 3 4 5
75− () () () () ()
75+ 6 7 8 9 10
76− () () () () ()
76+ 11 12 13 14 15
77− () () () () ()
77+ 16 17 18 19 20
78− () () () () ()
78+ 21 22 23 24 25
79
79
80instance ToJSON BigRecord
80instance ToJSON BigRecord
81instance FromJSON BigRecord
81instance FromJSON BigRecord
@@ -92,20 +92,20 @@ thBigRecordFromJSON = parse thBigRecordParseJSON
92--------------------------------------------------------------------------------
92--------------------------------------------------------------------------------
93
93
94data BigProduct = BigProduct
94data BigProduct = BigProduct
95− !() !() !() !() !()
95+ !Int !Int !Int !Int !Int
96− !() !() !() !() !()
96+ !Int !Int !Int !Int !Int
97− !() !() !() !() !()
97+ !Int !Int !Int !Int !Int
98− !() !() !() !() !()
98+ !Int !Int !Int !Int !Int
99− !() !() !() !() !()
99+ !Int !Int !Int !Int !Int
100− deriving (Eq, Generic, Data, Typeable)
100+ deriving (Show, Eq, Generic, Data, Typeable)
101
101
102instance NFData BigProduct
102instance NFData BigProduct
103
103
104−bigProduct = BigProduct () () () () ()
104+bigProduct = BigProduct 1 2 3 4 5
105− () () () () ()
105+ 6 7 8 9 10
106− () () () () ()
106+ 11 12 13 14 15
107− () () () () ()
107+ 16 17 18 19 20
108− () () () () ()
108+ 21 22 23 24 25
109
109
110instance ToJSON BigProduct
110instance ToJSON BigProduct
111instance FromJSON BigProduct
111instance FromJSON BigProduct
@@ -126,11 +126,11 @@ data BigSum = F01 | F02 | F03 | F04 | F05
126 | F11 | F12 | F13 | F14 | F15
126 | F11 | F12 | F13 | F14 | F15
127 | F16 | F17 | F18 | F19 | F20
127 | F16 | F17 | F18 | F19 | F20
128 | F21 | F22 | F23 | F24 | F25
128 | F21 | F22 | F23 | F24 | F25
129− deriving (Eq, Generic, Data, Typeable)
129+ deriving (Show, Eq, Generic, Data, Typeable)
130
130
131instance NFData BigSum
131instance NFData BigSum
132
132
133−bigSum = F12
133+bigSum = F25
134
134
135instance ToJSON BigSum
135instance ToJSON BigSum
136instance FromJSON BigSum
136instance FromJSON BigSum