summaryrefslogtreecommitdiff
path: root/testsuite/tests/perf/compiler/T20049.hs
blob: 2a6c1c56fcb259f89c332d200cc6cbf0f3c7b42c (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
{-# OPTIONS_GHC -O1 #-}
module Repro where

data A = A
  { a1 :: (Maybe ())
  , a2 :: (Maybe ())
  , a3 :: (Maybe ())
  , a4 :: (Maybe ())
  , a5 :: (Maybe ())
  , a6 :: (Maybe ())
  , a7 :: (Maybe ())
  , a8 :: (Maybe ())
  , a9 :: (Maybe ())
  , a10 :: (Maybe ())
  , a11 :: (Maybe ())
  , a12 :: (Maybe ())
  }

data B = B
  { b1 :: !Bool
  , b2 :: !Bool
  , b3 :: !Bool
  , b4 :: !Bool
  , b5 :: !Bool
  , b6 :: !Bool
  , b7 :: !Bool
  , b8 :: !Bool
  , b9 :: !Bool
  , b10 :: !Bool
  , b11 :: !Bool
  , b12 :: !Bool
  }

f :: Maybe () -> Bool
f (Just ()) = True
f Nothing = False

g :: A -> B
g (A a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12) =
  B {
      b1 = f a1
    , b2 = f a2
    , b3 = f a3
    , b4 = f a4
    , b5 = f a5
    , b6 = f a6
    , b7 = f a7
    , b8 = f a8
    , b9 = f a9
    , b10 = f a10
    , b11 = f a11
    , b12 = f a12
  }