blob: b3ec3d96f56d80a28d081c11f57d5a2f887353fb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
{-# LANGUAGE BangPatterns #-}
module T22317 where
data T = T (Maybe Bool) (Maybe Bool) (Maybe Bool) (Maybe Bool)
m :: Maybe a -> Maybe a -> Maybe a
m (Just v1) Nothing = Just v1
m _ mb = mb
{-# INLINE m #-}
f :: T -> T -> T
f (T a1 b1 c1 d1) (T a2 b2 c2 d2)
= let j1 !a = let j2 !b = let j3 !c = let j4 !d = T a b c d
in j4 (m d1 d2)
in j3 (m c1 c2)
in j2 (m b1 b2)
in j1 (m a1 a2)
{-# OPAQUE f #-}
|