Ticket #8793: tuple.dump-simpl

File tuple.dump-simpl, 1.8 KB (added by cdk, 19 months ago)

fast core - tuple (1st method)

Line 
1    case ipv3 of _ {
2      Empty -> (# ipv2, Nothing @ a #);
3      Bucket rb ds ds3 ->
4        case ==# rb x# of _ {
5          False ->
6            letrec {
7              $wgo
8                :: (Bucket a -> Bucket a)
9                   -> Bucket a -> (# Bool, Maybe a, Bucket a #)
10              $wgo =
11                \ (w3 :: Bucket a -> Bucket a) (w4 :: Bucket a) ->
12                  case w4 of _ {
13                    Empty -> (# False, Nothing @ a, Empty @ a #);
14                    Bucket rb1 ds4 ds5 ->
15                      case ==# rb1 x# of _ {
16                        False -> $wgo (\ (x :: Bucket a) -> w3 (Bucket @ a rb1 ds4 x)) ds5;
17                        True ->
18                          case w ds4 of _ {
19                            Nothing -> (# True, Just @ a ds4, w3 ds5 #);
20                            Just v -> (# False, Just @ a ds4, w3 (Bucket @ a rb1 v ds5) #)
21                          }
22                      }
23                  }; } in
24            case $wgo (\ (x :: Bucket a) -> Bucket @ a rb ds x) ds3
25            of _ { (# ww4, ww5, ww6 #) ->
26            case ww5 of wild4 {
27              Nothing -> (# ipv2, Nothing @ a #);
28              Just ipv4 ->
29                case writeArray# @ RealWorld @ (Bucket a) a n# ww6 ipv2
30                of s1# { __DEFAULT ->
31                case ww4 of _ {
32                  False -> (# s1#, wild4 #);
33                  True ->
34                    case readIntOffAddr# @ RealWorld ww1 0 s1#
35                    of _ { (# ipv5, ipv6 #) ->
36                    case writeIntOffAddr# @ RealWorld ww1 0 (-# ipv6 1) ipv5
37                    of s2 { __DEFAULT ->
38                    case touch# @ ForeignPtrContents ww2 s2 of s' { __DEFAULT ->
39                    (# s', wild4 #)
40                    }
41                    }
42                    }
43                }
44                }
45            }
46            };