--- Main.word32.dump-simpl	2017-11-28 12:47:47.000000000 +0800
+++ Main.word64.dump-simpl	2017-11-28 12:47:24.000000000 +0800
@@ -1,9 +1,9 @@
 
 ==================== Tidy Core ====================
-2017-11-28 04:47:47.432833 UTC
+2017-11-28 04:47:24.572171 UTC
 
 Result size of Tidy Core
-  = {terms: 599, types: 922, coercions: 437, joins: 0/3}
+  = {terms: 759, types: 1,007, coercions: 432, joins: 0/2}
 
 -- RHS size: {terms: 3, types: 4, coercions: 2, joins: 0/0}
 sumSize
@@ -21,23 +21,17 @@
 $fShowTagged2
 $fShowTagged2 = "}"#
 
--- RHS size: {terms: 62, types: 35, coercions: 2, joins: 0/2}
+-- RHS size: {terms: 51, types: 33, coercions: 2, joins: 0/1}
 $w$cshowsPrec
 $w$cshowsPrec
-  = \ @ s_s6Fd ww_s6Fi w_s6Ff ->
+  = \ @ s_s6Kr ww_s6Kw w_s6Kt ->
       let {
-        w1_s6Au
-        w1_s6Au
-          = case w_s6Ff `cast` <Co:2> of { W32# x#_a4VO ->
-            let {
-              i#_s6Ay
-              i#_s6Ay = word2Int# x#_a4VO } in
-            case >=# i#_s6Ay 0# of {
-              __DEFAULT -> wordToInteger x#_a4VO;
-              1# -> smallInteger i#_s6Ay
-            }
+        w1_X6Cm
+        w1_X6Cm
+          = case w_s6Kt `cast` <Co:2> of { W64# x#_a4VN ->
+            word64ToInteger x#_a4VN
             } } in
-      case >=# ww_s6Fi 11# of {
+      case >=# ww_s6Kw 11# of {
         __DEFAULT ->
           \ x_X4VM ->
             unpackAppendCString#
@@ -45,10 +39,10 @@
               (unpackAppendCString#
                  $fShowTagged3
                  (case $w$cshowsPrec4
-                         0# w1_s6Au (unpackAppendCString# $fShowTagged2 x_X4VM)
+                         0# w1_X6Cm (unpackAppendCString# $fShowTagged2 x_X4VM)
                   of
-                  { (# ww3_a4VZ, ww4_a4W0 #) ->
-                  : ww3_a4VZ ww4_a4W0
+                  { (# ww3_a4VX, ww4_a4VY #) ->
+                  : ww3_a4VX ww4_a4VY
                   }));
         1# ->
           \ x_a4UD ->
@@ -59,19 +53,19 @@
                     $fShowTagged3
                     (case $w$cshowsPrec4
                             0#
-                            w1_s6Au
+                            w1_X6Cm
                             (unpackAppendCString# $fShowTagged2 (: $fShow(,)2 x_a4UD))
                      of
-                     { (# ww3_a4VZ, ww4_a4W0 #) ->
-                     : ww3_a4VZ ww4_a4W0
+                     { (# ww3_a4VX, ww4_a4VY #) ->
+                     : ww3_a4VX ww4_a4VY
                      })))
       }
 
 -- RHS size: {terms: 9, types: 8, coercions: 0, joins: 0/0}
 $fShowTagged_$cshowsPrec
 $fShowTagged_$cshowsPrec
-  = \ @ s_s6Fd w_s6Fe w1_s6Ff ->
-      case w_s6Fe of { I# ww1_s6Fi -> $w$cshowsPrec ww1_s6Fi w1_s6Ff }
+  = \ @ s_s6Kr w_s6Ks w1_s6Kt ->
+      case w_s6Ks of { I# ww1_s6Kw -> $w$cshowsPrec ww1_s6Kw w1_s6Kt }
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 $fSumSize:+:14
@@ -82,56 +76,66 @@
 $fSumSize:+:13 = 1
 
 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
-$fSumSize:+:12
-$fSumSize:+:12 = unpackCString# $fShowTagged2
+$fShowTagged5
+$fShowTagged5 = unpackCString# $fShowTagged2
 
 -- RHS size: {terms: 9, types: 10, coercions: 0, joins: 0/0}
-$fSumSize:+:11
-$fSumSize:+:11
-  = case $w$cshowsPrec4 0# $fSumSize:+:13 $fSumSize:+:12 of
-    { (# ww3_a4VZ, ww4_a4W0 #) ->
-    : ww3_a4VZ ww4_a4W0
+$fSumSize:+:12
+$fSumSize:+:12
+  = case $w$cshowsPrec4 0# $fSumSize:+:13 $fShowTagged5 of
+    { (# ww3_a4VX, ww4_a4VY #) ->
+    : ww3_a4VX ww4_a4VY
     }
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$fSumSize:+:10
-$fSumSize:+:10 = unpackAppendCString# $fShowTagged3 $fSumSize:+:11
+$fSumSize:+:11
+$fSumSize:+:11 = unpackAppendCString# $fShowTagged3 $fSumSize:+:12
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$fSumSize:+:9
-$fSumSize:+:9 = unpackAppendCString# $fShowTagged4 $fSumSize:+:10
+$fSumSize:+:10
+$fSumSize:+:10 = unpackAppendCString# $fShowTagged4 $fSumSize:+:11
 
 -- RHS size: {terms: 5, types: 0, coercions: 0, joins: 0/0}
-$fSumSize:+:8
-$fSumSize:+:8
+$fSumSize:+:9
+$fSumSize:+:9
   = showLitString
-      (unpackAppendCString# $fSumSize:+:14 $fSumSize:+:9) $fShow[]1
+      (unpackAppendCString# $fSumSize:+:14 $fSumSize:+:10) $fShow[]1
 
 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
-$fSumSize:+:7
-$fSumSize:+:7 = : $fShow(,)3 $fSumSize:+:8
+$fSumSize:+:8
+$fSumSize:+:8 = : $fShow(,)3 $fSumSize:+:9
 
 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
-$fSumSize:+:6
-$fSumSize:+:6 = W32# 1##
+$fSumSize:+:7
+$fSumSize:+:7 = W64# 1L##
 
 -- RHS size: {terms: 5, types: 8, coercions: 6, joins: 0/0}
 $fSumSize:+:_$csumSize1
 $fSumSize:+:_$csumSize1
   = \ @ c_a4Q0 @ a_a4Q1 ->
-      trace $fSumSize:+:7 ($fSumSize:+:6 `cast` <Co:6>)
+      trace $fSumSize:+:8 ($fSumSize:+:7 `cast` <Co:6>)
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 $fSumSize:+:15
 $fSumSize:+:15 = "a :+: b => sumSize :: Tagged b: "#
 
--- RHS size: {terms: 3, types: 18, coercions: 0, joins: 0/0}
+-- RHS size: {terms: 13, types: 19, coercions: 12, joins: 0/0}
+$fSumSize:+:6
+$fSumSize:+:6
+  = case $fSumSize:+:_$csumSize1 `cast` <Co:12> of { W64# x#_a4VN ->
+    case $w$cshowsPrec4 0# (word64ToInteger x#_a4VN) $fShowTagged5 of
+    { (# ww3_a4VX, ww4_a4VY #) ->
+    : ww3_a4VX ww4_a4VY
+    }
+    }
+
+-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 $fSumSize:+:5
-$fSumSize:+:5 = $w$cshowsPrec 0# $fSumSize:+:_$csumSize1
+$fSumSize:+:5 = unpackAppendCString# $fShowTagged3 $fSumSize:+:6
 
--- RHS size: {terms: 2, types: 1, coercions: 0, joins: 0/0}
+-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 $fSumSize:+:4
-$fSumSize:+:4 = $fSumSize:+:5 []
+$fSumSize:+:4 = unpackAppendCString# $fShowTagged4 $fSumSize:+:5
 
 -- RHS size: {terms: 5, types: 0, coercions: 0, joins: 0/0}
 $fSumSize:+:3
@@ -144,120 +148,224 @@
 $fSumSize:+:2 = : $fShow(,)3 $fSumSize:+:3
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+$fSumSize:+:21
+$fSumSize:+:21 = "a :+: b => sumSize :: Tagged a: "#
+
+-- RHS size: {terms: 13, types: 19, coercions: 12, joins: 0/0}
+$fSumSize:+:20
 $fSumSize:+:20
-$fSumSize:+:20 = "a :+: b => sumSize :: Tagged a: "#
+  = case $fSumSize:+:_$csumSize1 `cast` <Co:12> of { W64# x#_a4VN ->
+    case $w$cshowsPrec4 0# (word64ToInteger x#_a4VN) $fShowTagged5 of
+    { (# ww3_a4VX, ww4_a4VY #) ->
+    : ww3_a4VX ww4_a4VY
+    }
+    }
 
--- RHS size: {terms: 3, types: 18, coercions: 0, joins: 0/0}
+-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 $fSumSize:+:19
-$fSumSize:+:19 = $w$cshowsPrec 0# $fSumSize:+:_$csumSize1
+$fSumSize:+:19 = unpackAppendCString# $fShowTagged3 $fSumSize:+:20
 
--- RHS size: {terms: 2, types: 1, coercions: 0, joins: 0/0}
+-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 $fSumSize:+:18
-$fSumSize:+:18 = $fSumSize:+:19 []
+$fSumSize:+:18 = unpackAppendCString# $fShowTagged4 $fSumSize:+:19
 
 -- RHS size: {terms: 5, types: 0, coercions: 0, joins: 0/0}
 $fSumSize:+:17
 $fSumSize:+:17
   = showLitString
-      (unpackAppendCString# $fSumSize:+:20 $fSumSize:+:18) $fShow[]1
+      (unpackAppendCString# $fSumSize:+:21 $fSumSize:+:18) $fShow[]1
 
 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
 $fSumSize:+:16
 $fSumSize:+:16 = : $fShow(,)3 $fSumSize:+:17
 
--- RHS size: {terms: 14, types: 42, coercions: 24, joins: 0/0}
+-- RHS size: {terms: 33, types: 86, coercions: 24, joins: 0/0}
 $fSumSize:+:1
 $fSumSize:+:1
   = case (trace $fSumSize:+:16 $fSumSize:+:_$csumSize1)
          `cast` <Co:12>
     of
-    { W32# x#_a4YN ->
+    { W64# ww1_a4YK ->
     case (trace $fSumSize:+:2 $fSumSize:+:_$csumSize1) `cast` <Co:12>
     of
-    { W32# y#_a4YR ->
-    W32# (plusWord# x#_a4YN y#_a4YR)
+    { W64# ww3_a4YP ->
+    case {__pkg_ccall ghc-prim-0.5.2.0 Word64#
+                              -> State# RealWorld -> (# State# RealWorld, Int64# #)}_a4YO
+           ww3_a4YP realWorld#
+    of
+    { (# ds1_a4YU, ds2_a4YV #) ->
+    case {__pkg_ccall ghc-prim-0.5.2.0 Word64#
+                              -> State# RealWorld -> (# State# RealWorld, Int64# #)}_a4YT
+           ww1_a4YK realWorld#
+    of
+    { (# ds4_a4Z0, ds5_a4Z1 #) ->
+    case {__pkg_ccall ghc-prim-0.5.2.0 Int64#
+                              -> Int64# -> State# RealWorld -> (# State# RealWorld, Int64# #)}_a4YZ
+           ds5_a4Z1 ds2_a4YV realWorld#
+    of
+    { (# ds6_a4Z6, ds3_a4Z7 #) ->
+    case {__pkg_ccall ghc-prim-0.5.2.0 Int64#
+                              -> State# RealWorld -> (# State# RealWorld, Word64# #)}_a4Z5
+           ds3_a4Z7 realWorld#
+    of
+    { (# ds7_a4Zb, ds8_a4Zc #) ->
+    W64# ds8_a4Zc
+    }
+    }
+    }
+    }
     }
     }
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+$fSumSize:+:27
+$fSumSize:+:27 = "SumSize (a :+: b): "#
+
+-- RHS size: {terms: 13, types: 12, coercions: 0, joins: 0/0}
+$fSumSize:+:26
+$fSumSize:+:26
+  = case $fSumSize:+:1 of { W64# x#_a4VN ->
+    case $w$cshowsPrec4 0# (word64ToInteger x#_a4VN) $fShowTagged5 of
+    { (# ww3_a4VX, ww4_a4VY #) ->
+    : ww3_a4VX ww4_a4VY
+    }
+    }
+
+-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 $fSumSize:+:25
-$fSumSize:+:25 = "SumSize (a :+: b): "#
+$fSumSize:+:25 = unpackAppendCString# $fShowTagged3 $fSumSize:+:26
 
--- RHS size: {terms: 3, types: 24, coercions: 26, joins: 0/0}
+-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 $fSumSize:+:24
-$fSumSize:+:24 = $w$cshowsPrec 0# ($fSumSize:+:1 `cast` <Co:26>)
-
--- RHS size: {terms: 2, types: 1, coercions: 0, joins: 0/0}
-$fSumSize:+:23
-$fSumSize:+:23 = $fSumSize:+:24 []
+$fSumSize:+:24 = unpackAppendCString# $fShowTagged4 $fSumSize:+:25
 
 -- RHS size: {terms: 5, types: 0, coercions: 0, joins: 0/0}
-$fSumSize:+:22
-$fSumSize:+:22
+$fSumSize:+:23
+$fSumSize:+:23
   = showLitString
-      (unpackAppendCString# $fSumSize:+:25 $fSumSize:+:23) $fShow[]1
+      (unpackAppendCString# $fSumSize:+:27 $fSumSize:+:24) $fShow[]1
 
 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
-$fSumSize:+:21
-$fSumSize:+:21 = : $fShow(,)3 $fSumSize:+:22
+$fSumSize:+:22
+$fSumSize:+:22 = : $fShow(,)3 $fSumSize:+:23
 
 -- RHS size: {terms: 3, types: 25, coercions: 26, joins: 0/0}
 $fSumSize:+:_$s$csumSize
 $fSumSize:+:_$s$csumSize
-  = trace $fSumSize:+:21 ($fSumSize:+:1 `cast` <Co:26>)
+  = trace $fSumSize:+:22 ($fSumSize:+:1 `cast` <Co:26>)
 
--- RHS size: {terms: 49, types: 34, coercions: 24, joins: 0/1}
+-- RHS size: {terms: 107, types: 105, coercions: 24, joins: 0/1}
 $fSumSize:+:_$csumSize
 $fSumSize:+:_$csumSize
   = \ @ a_a4Qp @ b_a4Qq $dSumSize_a4Qr $dSumSize1_a4Qs ->
       let {
-        x_s6Af
-        x_s6Af
+        x_s6As
+        x_s6As
           = case (trace
                     (: $fShow(,)3
                        (showLitString
                           (unpackAppendCString#
-                             $fSumSize:+:20
-                             ($w$cshowsPrec 0# ($dSumSize_a4Qr `cast` <Co:2>) []))
+                             $fSumSize:+:21
+                             (unpackAppendCString#
+                                $fShowTagged4
+                                (unpackAppendCString#
+                                   $fShowTagged3
+                                   (case $dSumSize_a4Qr `cast` <Co:5> of { W64# x#_a4VN ->
+                                    case $w$cshowsPrec4 0# (word64ToInteger x#_a4VN) $fShowTagged5
+                                    of
+                                    { (# ww3_a4VX, ww4_a4VY #) ->
+                                    : ww3_a4VX ww4_a4VY
+                                    }
+                                    }))))
                           $fShow[]1))
                     ($dSumSize_a4Qr `cast` <Co:2>))
                  `cast` <Co:2>
             of
-            { W32# x#_a4YN ->
+            { W64# ww1_a4YK ->
             case (trace
                     (: $fShow(,)3
                        (showLitString
                           (unpackAppendCString#
                              $fSumSize:+:15
-                             ($w$cshowsPrec 0# ($dSumSize1_a4Qs `cast` <Co:2>) []))
+                             (unpackAppendCString#
+                                $fShowTagged4
+                                (unpackAppendCString#
+                                   $fShowTagged3
+                                   (case $dSumSize1_a4Qs `cast` <Co:5> of { W64# x#_a4VN ->
+                                    case $w$cshowsPrec4 0# (word64ToInteger x#_a4VN) $fShowTagged5
+                                    of
+                                    { (# ww3_a4VX, ww4_a4VY #) ->
+                                    : ww3_a4VX ww4_a4VY
+                                    }
+                                    }))))
                           $fShow[]1))
                     ($dSumSize1_a4Qs `cast` <Co:2>))
                  `cast` <Co:2>
             of
-            { W32# y#_a4YR ->
-            W32# (plusWord# x#_a4YN y#_a4YR)
+            { W64# ww3_a4YP ->
+            case {__pkg_ccall ghc-prim-0.5.2.0 Word64#
+                              -> State# RealWorld -> (# State# RealWorld, Int64# #)}_a4YO
+                   ww3_a4YP realWorld#
+            of
+            { (# ds1_a4YU, ds2_a4YV #) ->
+            case {__pkg_ccall ghc-prim-0.5.2.0 Word64#
+                              -> State# RealWorld -> (# State# RealWorld, Int64# #)}_a4YT
+                   ww1_a4YK realWorld#
+            of
+            { (# ds4_a4Z0, ds5_a4Z1 #) ->
+            case {__pkg_ccall ghc-prim-0.5.2.0 Int64#
+                              -> Int64# -> State# RealWorld -> (# State# RealWorld, Int64# #)}_a4YZ
+                   ds5_a4Z1 ds2_a4YV realWorld#
+            of
+            { (# ds6_a4Z6, ds3_a4Z7 #) ->
+            case {__pkg_ccall ghc-prim-0.5.2.0 Int64#
+                              -> State# RealWorld -> (# State# RealWorld, Word64# #)}_a4Z5
+                   ds3_a4Z7 realWorld#
+            of
+            { (# ds7_a4Zb, ds8_a4Zc #) ->
+            W64# ds8_a4Zc
+            }
+            }
+            }
+            }
             }
             } } in
       trace
         (: $fShow(,)3
            (showLitString
               (unpackAppendCString#
-                 $fSumSize:+:25 ($w$cshowsPrec 0# (x_s6Af `cast` <Co:6>) []))
+                 $fSumSize:+:27
+                 (unpackAppendCString#
+                    $fShowTagged4
+                    (unpackAppendCString#
+                       $fShowTagged3
+                       (case x_s6As of { W64# x#_a4VN ->
+                        case $w$cshowsPrec4 0# (word64ToInteger x#_a4VN) $fShowTagged5 of
+                        { (# ww3_a4VX, ww4_a4VY #) ->
+                        : ww3_a4VX ww4_a4VY
+                        }
+                        }))))
               $fShow[]1))
-        (x_s6Af `cast` <Co:6>)
-
--- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
-$fShowTagged5
-$fShowTagged5 = I# 0#
+        (x_s6As `cast` <Co:6>)
 
--- RHS size: {terms: 6, types: 6, coercions: 0, joins: 0/0}
+-- RHS size: {terms: 19, types: 16, coercions: 2, joins: 0/0}
 $fShowTagged_$cshow
 $fShowTagged_$cshow
-  = \ @ s_a4OP x_a4V0 -> $w$cshowsPrec 0# x_a4V0 []
+  = \ @ s_a4OP x_a4V0 ->
+      unpackAppendCString#
+        $fShowTagged4
+        (unpackAppendCString#
+           $fShowTagged3
+           (case x_a4V0 `cast` <Co:2> of { W64# x#_a4VN ->
+            case $w$cshowsPrec4 0# (word64ToInteger x#_a4VN) $fShowTagged5 of
+            { (# ww3_a4VX, ww4_a4VY #) ->
+            : ww3_a4VX ww4_a4VY
+            }
+            }))
 
 -- RHS size: {terms: 5, types: 5, coercions: 0, joins: 0/0}
 $fShowTagged1
-$fShowTagged1 = \ @ s_a4OP w_s6Ff -> $w$cshowsPrec 0# w_s6Ff
+$fShowTagged1 = \ @ s_a4OP w_s6Kt -> $w$cshowsPrec 0# w_s6Kt
 
 -- RHS size: {terms: 7, types: 9, coercions: 0, joins: 0/0}
 $fShowTagged_$cshowList
@@ -366,37 +474,44 @@
 unTagged = unTagged1 `cast` <Co:8>
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+$fSumSizeM7
+$fSumSizeM7 = "SumSize (M1 D c a): "#
+
+-- RHS size: {terms: 13, types: 12, coercions: 24, joins: 0/0}
+$fSumSizeM6
 $fSumSizeM6
-$fSumSizeM6 = "SumSize (M1 D c a): "#
+  = case $fSumSize:+:_$s$csumSize `cast` <Co:24> of { W64# x#_a4VN ->
+    case $w$cshowsPrec4 0# (word64ToInteger x#_a4VN) $fShowTagged5 of
+    { (# ww3_a4VX, ww4_a4VY #) ->
+    : ww3_a4VX ww4_a4VY
+    }
+    }
 
--- RHS size: {terms: 4, types: 28, coercions: 54, joins: 0/0}
-$fSumSizeM5
+-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 $fSumSizeM5
-  = \ @ c_X4PD ->
-      $w$cshowsPrec 0# ($fSumSize:+:_$s$csumSize `cast` <Co:54>)
+$fSumSizeM5 = unpackAppendCString# $fShowTagged3 $fSumSizeM6
 
--- RHS size: {terms: 3, types: 3, coercions: 0, joins: 0/0}
+-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 $fSumSizeM4
-$fSumSizeM4 = \ @ c_X4PD -> $fSumSizeM5 []
+$fSumSizeM4 = unpackAppendCString# $fShowTagged4 $fSumSizeM5
 
--- RHS size: {terms: 6, types: 2, coercions: 0, joins: 0/0}
+-- RHS size: {terms: 5, types: 0, coercions: 0, joins: 0/0}
 $fSumSizeM3
 $fSumSizeM3
-  = \ @ c_X4PD ->
-      showLitString
-        (unpackAppendCString# $fSumSizeM6 $fSumSizeM4) $fShow[]1
+  = showLitString
+      (unpackAppendCString# $fSumSizeM7 $fSumSizeM4) $fShow[]1
 
--- RHS size: {terms: 4, types: 3, coercions: 0, joins: 0/0}
+-- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
 $fSumSizeM2
-$fSumSizeM2 = \ @ c_X4PD -> : $fShow(,)3 $fSumSizeM3
+$fSumSizeM2 = : $fShow(,)3 $fSumSizeM3
 
--- RHS size: {terms: 4, types: 30, coercions: 54, joins: 0/0}
+-- RHS size: {terms: 4, types: 29, coercions: 54, joins: 0/0}
 $fSumSizeM1_$s$csumSize
 $fSumSizeM1_$s$csumSize
   = \ @ c_X4PD ->
       trace $fSumSizeM2 ($fSumSize:+:_$s$csumSize `cast` <Co:54>)
 
--- RHS size: {terms: 15, types: 18, coercions: 26, joins: 0/0}
+-- RHS size: {terms: 28, types: 24, coercions: 18, joins: 0/0}
 $fSumSizeM1_$csumSize
 $fSumSizeM1_$csumSize
   = \ @ a_a4Pz @ c_a4PA $dSumSize_a4PB ->
@@ -404,7 +519,17 @@
         (: $fShow(,)3
            (showLitString
               (unpackAppendCString#
-                 $fSumSizeM6 ($w$cshowsPrec 0# ($dSumSize_a4PB `cast` <Co:13>) []))
+                 $fSumSizeM7
+                 (unpackAppendCString#
+                    $fShowTagged4
+                    (unpackAppendCString#
+                       $fShowTagged3
+                       (case $dSumSize_a4PB `cast` <Co:5> of { W64# x#_a4VN ->
+                        case $w$cshowsPrec4 0# (word64ToInteger x#_a4VN) $fShowTagged5 of
+                        { (# ww3_a4VX, ww4_a4VY #) ->
+                        : ww3_a4VX ww4_a4VY
+                        }
+                        }))))
               $fShow[]1))
         ($dSumSize_a4PB `cast` <Co:13>)
 
@@ -441,24 +566,24 @@
 $trModule = Module $trModule3 $trModule1
 
 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
-$krep_r6zI
-$krep_r6zI = KindRepTyConApp $tcWord32 []
+$krep_r6A1
+$krep_r6A1 = KindRepTyConApp $tcWord64 []
 
 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
-$krep1_r6Iw
-$krep1_r6Iw = KindRepTyConApp $tcConstraint []
+$krep1_r6QG
+$krep1_r6QG = KindRepTyConApp $tcConstraint []
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 $tcSumSize1
-$tcSumSize1 = KindRepFun krep$*Arr* $krep1_r6Iw
+$tcSumSize1 = KindRepFun krep$*Arr* $krep1_r6QG
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 $tcTagged1
 $tcTagged1 = KindRepFun krep$*Arr* krep$*
 
 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
-$krep2_r6Ix
-$krep2_r6Ix = KindRepVar 0#
+$krep2_r6QH
+$krep2_r6QH = KindRepVar 0#
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 $tcX2
@@ -541,16 +666,16 @@
       $tcTagged1
 
 -- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0}
-$krep3_r6Iy
-$krep3_r6Iy = : $krep2_r6Ix []
+$krep3_r6QI
+$krep3_r6QI = : $krep2_r6QH []
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep4_r6Iz
-$krep4_r6Iz = KindRepTyConApp $tcTagged $krep3_r6Iy
+$krep4_r6QJ
+$krep4_r6QJ = KindRepTyConApp $tcTagged $krep3_r6QI
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 $tc'Tagged1
-$tc'Tagged1 = KindRepFun $krep_r6zI $krep4_r6Iz
+$tc'Tagged1 = KindRepFun $krep_r6A1 $krep4_r6QJ
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 $tc'Tagged3
@@ -591,12 +716,12 @@
       $tcSumSize1
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep5_r6IA
-$krep5_r6IA = KindRepTyConApp $tcSumSize $krep3_r6Iy
+$krep5_r6QK
+$krep5_r6QK = KindRepTyConApp $tcSumSize $krep3_r6QI
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 $tc'C:SumSize1
-$tc'C:SumSize1 = KindRepFun $krep4_r6Iz $krep5_r6IA
+$tc'C:SumSize1 = KindRepFun $krep4_r6QJ $krep5_r6QK
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 $tc'C:SumSize3
@@ -617,13 +742,23 @@
       1#
       $tc'C:SumSize1
 
--- RHS size: {terms: 3, types: 37, coercions: 0, joins: 0/0}
+-- RHS size: {terms: 13, types: 17, coercions: 33, joins: 0/0}
+main4
+main4
+  = case $fSumSizeM1_$s$csumSize `cast` <Co:33> of { W64# x#_a4VN ->
+    case $w$cshowsPrec4 0# (word64ToInteger x#_a4VN) $fShowTagged5 of
+    { (# ww3_a4VX, ww4_a4VY #) ->
+    : ww3_a4VX ww4_a4VY
+    }
+    }
+
+-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 main3
-main3 = $w$cshowsPrec 0# $fSumSizeM1_$s$csumSize
+main3 = unpackAppendCString# $fShowTagged3 main4
 
--- RHS size: {terms: 2, types: 1, coercions: 0, joins: 0/0}
+-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 main2
-main2 = main3 []
+main2 = unpackAppendCString# $fShowTagged4 main3
 
 -- RHS size: {terms: 4, types: 0, coercions: 0, joins: 0/0}
 main1
@@ -634,12 +769,12 @@
 main = main1 `cast` <Co:3>
 
 -- RHS size: {terms: 2, types: 1, coercions: 3, joins: 0/0}
-main4
-main4 = runMainIO1 (main1 `cast` <Co:3>)
+main5
+main5 = runMainIO1 (main1 `cast` <Co:3>)
 
 -- RHS size: {terms: 1, types: 0, coercions: 3, joins: 0/0}
 main
-main = main4 `cast` <Co:3>
+main = main5 `cast` <Co:3>
 
 
 ------ Local rules for imported ids --------
@@ -647,12 +782,12 @@
                                                                 C
                                                                 ('MetaCons "B" 'PrefixI 'False)
                                                                 U1)"
-    forall $dSumSize_s6Ah $dSumSize1_s6Ag.
-      $fSumSize:+:_$csumSize $dSumSize1_s6Ag $dSumSize_s6Ah
+    forall $dSumSize_s6Au $dSumSize1_s6At.
+      $fSumSize:+:_$csumSize $dSumSize1_s6At $dSumSize_s6Au
       = $fSumSize:+:_$s$csumSize
 "SPEC $csumSize @ (C1 ('MetaCons "A" 'PrefixI 'False) U1
                   :+: C1 ('MetaCons "B" 'PrefixI 'False) U1) _"
-    forall @ c_a4PA $dSumSize_X6AG.
-      $fSumSizeM1_$csumSize $dSumSize_X6AG
+    forall @ c_a4PA $dSumSize_X6AT.
+      $fSumSizeM1_$csumSize $dSumSize_X6AT
       = $fSumSizeM1_$s$csumSize
 
