#3458: Allocation where none should happen
-------------------+--------------------------------------------------------
Reporter:  guest   |          Owner:                
    Type:  bug     |         Status:  new           
Priority:  normal  |      Component:  Compiler      
 Version:  6.10.1  |       Severity:  normal        
Keywords:          |       Testcase:                
      Os:  Linux   |   Architecture:  x86_64 (amd64)
-------------------+--------------------------------------------------------
 These two functions, according to profiling, do a lot of allocation:

 gen d r n m s p
     | r == ll   = do
         pokeElemOff p n 0x0a
         gen d 0     (n+1) (m+1) s p
     | n == m    = do
         pokeElemOff p n 0x0a
         return (s, if r == 0 then m else m+1)
     | otherwise = do
         let t = next s
         pokeElemOff p n (pick d t)
         gen d (r+1) (n+1) m     t p

 ------------------------------------------------------------------------

 pick (c, p) r = loop 0 where
     loop i = if r < unsafeAt p i
               then fromIntegral $ unsafeAt c i :: Word8
               else loop (i+1)

 ------------------------------------------------------------------------

 Core for pick:

 [GlobalId]
 [Arity 3
  NoCafRefs
  Str: DmdType LLL]
 $w$spick_r3kC =
   \ (ww_s33o :: GHC.Prim.ByteArray#)
     (ww1_s33v :: GHC.Prim.ByteArray#)
     (ww2_s33A :: GHC.Prim.Word#) ->
     letrec {
       $wloop_s38I :: GHC.Prim.Int# -> GHC.Prim.Word#
       [Arity 1
        Str: DmdType L]
       $wloop_s38I =
         \ (ww3_s339 :: GHC.Prim.Int#) ->
           __scc {pick main:Main !}
           case GHC.Prim.ltWord#
                  ww2_s33A (GHC.Prim.indexWord32Array# ww1_s33v ww3_s339)
           of wild_X3O {
             GHC.Bool.False -> $wloop_s38I (GHC.Prim.+# ww3_s339 1);
             GHC.Bool.True ->
               GHC.Prim.narrow8Word# (GHC.Prim.indexWord32Array# ww_s33o
 ww3_s339)
           }; } in
     case __scc {pick main:Main}
          case $wloop_s38I 0 of ww3_s33d { __DEFAULT ->
          GHC.Word.W8# ww3_s33d
          }
     of ww3_s33D { GHC.Word.W8# ww4_s33E ->
     ww4_s33E
     }

 ------------------------------------------------------------------------

 Core for gen (long):

 Rec {
 $s$wa_r3mi :: GHC.Prim.State# GHC.Prim.RealWorld
               -> GHC.Prim.Addr#
               -> GHC.Prim.Word#
               -> GHC.Prim.Int#
               -> GHC.Prim.Int#
               -> GHC.Prim.Int#
               -> GHC.Prim.ByteArray#
               -> GHC.Types.Int
               -> GHC.Types.Int
               -> GHC.Types.Int
               -> GHC.Prim.ByteArray#
               -> GHC.Types.Int
               -> GHC.Types.Int
               -> GHC.Types.Int
               -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                     (GHC.Word.Word32, GHC.Types.Int) #)
 [GlobalId]
 [Arity 14
  NoCafRefs]
 $s$wa_r3mi =
   \ (sc_s3es :: GHC.Prim.State# GHC.Prim.RealWorld)
     (sc1_s3et :: GHC.Prim.Addr#)
     (sc2_s3eu :: GHC.Prim.Word#)
     (sc3_s3ev :: GHC.Prim.Int#)
     (sc4_s3ew :: GHC.Prim.Int#)
     (sc5_s3ex :: GHC.Prim.Int#)
     (sc6_s3ey :: GHC.Prim.ByteArray#)
     (sc7_s3ez :: GHC.Types.Int)
     (sc8_s3eA :: GHC.Types.Int)
     (sc9_s3eB :: GHC.Types.Int)
     (sc10_s3eC :: GHC.Prim.ByteArray#)
     (sc11_s3eD :: GHC.Types.Int)
     (sc12_s3eE :: GHC.Types.Int)
     (sc13_s3eF :: GHC.Types.Int) ->
     let {
       m_s39b :: GHC.Types.Int
       []
       m_s39b = GHC.Types.I# sc3_s3ev } in
     ((__scc {gen main:Main !}
       case sc5_s3ex of wild_B1 {
         __DEFAULT ->
           case GHC.Prim.==# sc4_s3ew sc3_s3ev of wild1_X3F {
             GHC.Bool.False ->
               (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
                  let {
                    ww_s33e :: GHC.Prim.Word#
                    []
                    ww_s33e =
                      GHC.Prim.remWord#
                        (GHC.Prim.narrow32Word#
                           (GHC.Prim.plusWord#
                              (GHC.Prim.narrow32Word# (GHC.Prim.timesWord#
 __word 3877 sc2_s3eu))
                              __word 29573))
                        __word 139968 } in
                  case $w$spick_r3k8 sc10_s3eC sc6_s3ey ww_s33e
                  of ww1_s33i { __DEFAULT ->
                  case GHC.Prim.writeWord8OffAddr#
                         @ GHC.Prim.RealWorld sc1_s3et sc4_s3ew ww1_s33i
 eta_a2vm
                  of s21_a2wV { __DEFAULT ->
                  $s$wa_r3mi
                    s21_a2wV
                    sc1_s3et
                    ww_s33e
                    sc3_s3ev
                    (GHC.Prim.+# sc4_s3ew 1)
                    (GHC.Prim.+# wild_B1 1)
                    sc6_s3ey
                    sc7_s3ez
                    sc8_s3eA
                    sc9_s3eB
                    sc10_s3eC
                    sc11_s3eD
                    sc12_s3eE
                    sc13_s3eF
                  }
                  })
               `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32,
 GHC.Types.Int))
                       :: GHC.Prim.State# GHC.Prim.RealWorld
                          -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                                (GHC.Word.Word32, GHC.Types.Int) #)
                            ~
                          GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int));
             GHC.Bool.True ->
               (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
                  case GHC.Prim.writeWord8OffAddr#
                         @ GHC.Prim.RealWorld sc1_s3et sc4_s3ew __word 10
 eta_a2vm
                  of s21_a2wV { __DEFAULT ->
                  (# s21_a2wV,
                     (GHC.Word.W32# sc2_s3eu,
                      case wild_B1 of wild2_X4o {
                        __DEFAULT -> GHC.Types.I# (GHC.Prim.+# sc3_s3ev 1);
 0 -> m_s39b
                      }) #)
                  })
               `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32,
 GHC.Types.Int))
                       :: GHC.Prim.State# GHC.Prim.RealWorld
                          -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                                (GHC.Word.Word32, GHC.Types.Int) #)
                            ~
                          GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int))
           };
         60 ->
           (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
              case GHC.Prim.writeWord8OffAddr#
                     @ GHC.Prim.RealWorld sc1_s3et sc4_s3ew __word 10
 eta_a2vm
              of s21_a2wV { __DEFAULT ->
              $s$wa1_r3mk
                s21_a2wV
                sc1_s3et
                sc2_s3eu
                (GHC.Prim.+# sc3_s3ev 1)
                (GHC.Prim.+# sc4_s3ew 1)
                sc6_s3ey
                sc7_s3ez
                sc8_s3eA
                sc9_s3eB
                sc10_s3eC
                sc11_s3eD
                sc12_s3eE
                sc13_s3eF
              })
           `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32,
 GHC.Types.Int))
                   :: GHC.Prim.State# GHC.Prim.RealWorld
                      -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                            (GHC.Word.Word32, GHC.Types.Int) #)
                        ~
                      GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int))
       })
      `cast` ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int)
              :: GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int)
                   ~
                 GHC.Prim.State# GHC.Prim.RealWorld
                 -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                       (GHC.Word.Word32, GHC.Types.Int) #)))
       sc_s3es
 $s$wa1_r3mk :: GHC.Prim.State# GHC.Prim.RealWorld
                -> GHC.Prim.Addr#
                -> GHC.Prim.Word#
                -> GHC.Prim.Int#
                -> GHC.Prim.Int#
                -> GHC.Prim.ByteArray#
                -> GHC.Types.Int
                -> GHC.Types.Int
                -> GHC.Types.Int
                -> GHC.Prim.ByteArray#
                -> GHC.Types.Int
                -> GHC.Types.Int
                -> GHC.Types.Int
                -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                      (GHC.Word.Word32, GHC.Types.Int) #)
 [GlobalId]
 [Arity 13
  NoCafRefs]
 $s$wa1_r3mk =
   \ (sc_s3fH :: GHC.Prim.State# GHC.Prim.RealWorld)
     (sc1_s3fI :: GHC.Prim.Addr#)
     (sc2_s3fJ :: GHC.Prim.Word#)
     (sc3_s3fK :: GHC.Prim.Int#)
     (sc4_s3fL :: GHC.Prim.Int#)
     (sc5_s3fM :: GHC.Prim.ByteArray#)
     (sc6_s3fN :: GHC.Types.Int)
     (sc7_s3fO :: GHC.Types.Int)
     (sc8_s3fP :: GHC.Types.Int)
     (sc9_s3fQ :: GHC.Prim.ByteArray#)
     (sc10_s3fR :: GHC.Types.Int)
     (sc11_s3fS :: GHC.Types.Int)
     (sc12_s3fT :: GHC.Types.Int) ->
     let {
       m_s39b :: GHC.Types.Int
       []
       m_s39b = GHC.Types.I# sc3_s3fK } in
     ((__scc {gen main:Main !}
       case GHC.Prim.==# sc4_s3fL sc3_s3fK of wild_X3F {
         GHC.Bool.False ->
           (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
              let {
                ww_s33e :: GHC.Prim.Word#
                []
                ww_s33e =
                  GHC.Prim.remWord#
                    (GHC.Prim.narrow32Word#
                       (GHC.Prim.plusWord#
                          (GHC.Prim.narrow32Word# (GHC.Prim.timesWord#
 __word 3877 sc2_s3fJ))
                          __word 29573))
                    __word 139968 } in
              case $w$spick_r3k8 sc9_s3fQ sc5_s3fM ww_s33e
              of ww1_s33i { __DEFAULT ->
              case GHC.Prim.writeWord8OffAddr#
                     @ GHC.Prim.RealWorld sc1_s3fI sc4_s3fL ww1_s33i
 eta_a2vm
              of s21_a2wV { __DEFAULT ->
              $s$wa_r3mi
                s21_a2wV
                sc1_s3fI
                ww_s33e
                sc3_s3fK
                (GHC.Prim.+# sc4_s3fL 1)
                1
                sc5_s3fM
                sc6_s3fN
                sc7_s3fO
                sc8_s3fP
                sc9_s3fQ
                sc10_s3fR
                sc11_s3fS
                sc12_s3fT
              }
              })
           `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32,
 GHC.Types.Int))
                   :: GHC.Prim.State# GHC.Prim.RealWorld
                      -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                            (GHC.Word.Word32, GHC.Types.Int) #)
                        ~
                      GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int));
         GHC.Bool.True ->
           (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
              case GHC.Prim.writeWord8OffAddr#
                     @ GHC.Prim.RealWorld sc1_s3fI sc4_s3fL __word 10
 eta_a2vm
              of s21_a2wV { __DEFAULT ->
              (# s21_a2wV, (GHC.Word.W32# sc2_s3fJ, m_s39b) #)
              })
           `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32,
 GHC.Types.Int))
                   :: GHC.Prim.State# GHC.Prim.RealWorld
                      -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                            (GHC.Word.Word32, GHC.Types.Int) #)
                        ~
                      GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int))
       })
      `cast` ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int)
              :: GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int)
                   ~
                 GHC.Prim.State# GHC.Prim.RealWorld
                 -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                       (GHC.Word.Word32, GHC.Types.Int) #)))
       sc_s3fH
 end Rec }

 $s$wa2_r3mm :: GHC.Prim.State# GHC.Prim.RealWorld
                -> GHC.Prim.Addr#
                -> GHC.Word.Word32
                -> GHC.Prim.Int#
                -> GHC.Prim.Int#
                -> (Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32,
                    Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32)
                -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                      (GHC.Word.Word32, GHC.Types.Int) #)
 [GlobalId]
 [Arity 6
  NoCafRefs]
 $s$wa2_r3mm =
   \ (sc_s3eH :: GHC.Prim.State# GHC.Prim.RealWorld)
     (sc1_s3eI :: GHC.Prim.Addr#)
     (sc2_s3eJ :: GHC.Word.Word32)
     (sc3_s3eK :: GHC.Prim.Int#)
     (sc4_s3eL :: GHC.Prim.Int#)
     (sc5_s3eM :: (Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32,
                   Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32))
 ->
     let {
       m_s39b :: GHC.Types.Int
       []
       m_s39b = GHC.Types.I# sc3_s3eK } in
     ((__scc {gen main:Main !}
       case GHC.Prim.==# sc4_s3eL sc3_s3eK of wild_X3F {
         GHC.Bool.False ->
           (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
              case sc5_s3eM of w_X34x { (ww_s32X, ww1_s334) ->
              case ww_s32X
              of ww2_X34F
              { Data.Array.Base.UArray ww3_s32Z ww4_s330 ww5_s331 ww6_s332
 ->
              case ww1_s334
              of ww7_X34X
              { Data.Array.Base.UArray ww8_s336 ww9_s337 ww10_s338
 ww11_s339 ->
              case __scc {next main:Main}
                   case sc2_s3eJ of wild1_a2Bw { GHC.Word.W32# y#_a2By ->
                   GHC.Word.W32#
                     (GHC.Prim.remWord#
                        (GHC.Prim.narrow32Word#
                           (GHC.Prim.plusWord#
                              (GHC.Prim.narrow32Word# (GHC.Prim.timesWord#
 __word 3877 y#_a2By))
                              __word 29573))
                        __word 139968)
                   }
              of w1_X35g { GHC.Word.W32# ww12_s33e ->
              case $w$spick_r3k8 ww6_s332 ww11_s339 ww12_s33e
              of ww13_s33i { __DEFAULT ->
              case GHC.Prim.writeWord8OffAddr#
                     @ GHC.Prim.RealWorld sc1_s3eI sc4_s3eL ww13_s33i
 eta_a2vm
              of s21_a2wV { __DEFAULT ->
              $s$wa_r3mi
                s21_a2wV
                sc1_s3eI
                ww12_s33e
                sc3_s3eK
                (GHC.Prim.+# sc4_s3eL 1)
                1
                ww11_s339
                ww10_s338
                ww9_s337
                ww8_s336
                ww6_s332
                ww5_s331
                ww4_s330
                ww3_s32Z
              }
              }
              }
              }
              }
              })
           `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32,
 GHC.Types.Int))
                   :: GHC.Prim.State# GHC.Prim.RealWorld
                      -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                            (GHC.Word.Word32, GHC.Types.Int) #)
                        ~
                      GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int));
         GHC.Bool.True ->
           (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
              case GHC.Prim.writeWord8OffAddr#
                     @ GHC.Prim.RealWorld sc1_s3eI sc4_s3eL __word 10
 eta_a2vm
              of s21_a2wV { __DEFAULT ->
              (# s21_a2wV, (sc2_s3eJ, m_s39b) #)
              })
           `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32,
 GHC.Types.Int))
                   :: GHC.Prim.State# GHC.Prim.RealWorld
                      -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                            (GHC.Word.Word32, GHC.Types.Int) #)
                        ~
                      GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int))
       })
      `cast` ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int)
              :: GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int)
                   ~
                 GHC.Prim.State# GHC.Prim.RealWorld
                 -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                       (GHC.Word.Word32, GHC.Types.Int) #)))
       sc_s3eH

 $wa1_r3mo :: (Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32,
               Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32)
              -> GHC.Prim.Int#
              -> GHC.Prim.Int#
              -> GHC.Prim.Int#
              -> GHC.Word.Word32
              -> GHC.Prim.Addr#
              -> GHC.Prim.State# GHC.Prim.RealWorld
              -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                    (GHC.Word.Word32, GHC.Types.Int) #)
 [GlobalId]
 [Arity 7
  NoCafRefs
  Str: DmdType LLLLLLL]
 $wa1_r3mo =
   \ (w_s33r :: (Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32,
                 Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32))
     (ww_s33u :: GHC.Prim.Int#)
     (ww1_s33y :: GHC.Prim.Int#)
     (ww2_s33C :: GHC.Prim.Int#)
     (w1_s33E :: GHC.Word.Word32)
     (ww3_s33H :: GHC.Prim.Addr#)
     (w2_s33J :: GHC.Prim.State# GHC.Prim.RealWorld) ->
     let {
       m_s39b :: GHC.Types.Int
       []
       m_s39b = GHC.Types.I# ww2_s33C } in
     ((__scc {gen main:Main !}
       case ww_s33u of wild_B1 {
         __DEFAULT ->
           case GHC.Prim.==# ww1_s33y ww2_s33C of wild1_X3F {
             GHC.Bool.False ->
               (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
                  case w_s33r of w3_X34x { (ww4_s32X, ww5_s334) ->
                  case ww4_s32X
                  of ww6_X34F
                  { Data.Array.Base.UArray ww7_s32Z ww8_s330 ww9_s331
 ww10_s332 ->
                  case ww5_s334
                  of ww11_X34X
                  { Data.Array.Base.UArray ww12_s336 ww13_s337 ww14_s338
 ww15_s339 ->
                  case __scc {next main:Main}
                       case w1_s33E of wild11_a2Bw { GHC.Word.W32# y#_a2By
 ->
                       GHC.Word.W32#
                         (GHC.Prim.remWord#
                            (GHC.Prim.narrow32Word#
                               (GHC.Prim.plusWord#
                                  (GHC.Prim.narrow32Word#
 (GHC.Prim.timesWord# __word 3877 y#_a2By))
                                  __word 29573))
                            __word 139968)
                       }
                  of w4_X35g { GHC.Word.W32# ww16_s33e ->
                  case $w$spick_r3k8 ww10_s332 ww15_s339 ww16_s33e
                  of ww17_s33i { __DEFAULT ->
                  case GHC.Prim.writeWord8OffAddr#
                         @ GHC.Prim.RealWorld ww3_s33H ww1_s33y ww17_s33i
 eta_a2vm
                  of s21_a2wV { __DEFAULT ->
                  $s$wa_r3mi
                    s21_a2wV
                    ww3_s33H
                    ww16_s33e
                    ww2_s33C
                    (GHC.Prim.+# ww1_s33y 1)
                    (GHC.Prim.+# wild_B1 1)
                    ww15_s339
                    ww14_s338
                    ww13_s337
                    ww12_s336
                    ww10_s332
                    ww9_s331
                    ww8_s330
                    ww7_s32Z
                  }
                  }
                  }
                  }
                  }
                  })
               `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32,
 GHC.Types.Int))
                       :: GHC.Prim.State# GHC.Prim.RealWorld
                          -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                                (GHC.Word.Word32, GHC.Types.Int) #)
                            ~
                          GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int));
             GHC.Bool.True ->
               (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
                  case GHC.Prim.writeWord8OffAddr#
                         @ GHC.Prim.RealWorld ww3_s33H ww1_s33y __word 10
 eta_a2vm
                  of s21_a2wV { __DEFAULT ->
                  (# s21_a2wV,
                     (w1_s33E,
                      case wild_B1 of wild2_X4o {
                        __DEFAULT -> GHC.Types.I# (GHC.Prim.+# ww2_s33C 1);
 0 -> m_s39b
                      }) #)
                  })
               `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32,
 GHC.Types.Int))
                       :: GHC.Prim.State# GHC.Prim.RealWorld
                          -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                                (GHC.Word.Word32, GHC.Types.Int) #)
                            ~
                          GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int))
           };
         60 ->
           (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
              case GHC.Prim.writeWord8OffAddr#
                     @ GHC.Prim.RealWorld ww3_s33H ww1_s33y __word 10
 eta_a2vm
              of s21_a2wV { __DEFAULT ->
              $s$wa2_r3mm
                s21_a2wV
                ww3_s33H
                w1_s33E
                (GHC.Prim.+# ww2_s33C 1)
                (GHC.Prim.+# ww1_s33y 1)
                w_s33r
              })
           `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32,
 GHC.Types.Int))
                   :: GHC.Prim.State# GHC.Prim.RealWorld
                      -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                            (GHC.Word.Word32, GHC.Types.Int) #)
                        ~
                      GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int))
       })
      `cast` ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int)
              :: GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int)
                   ~
                 GHC.Prim.State# GHC.Prim.RealWorld
                 -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                       (GHC.Word.Word32, GHC.Types.Int) #)))
       w2_s33J

 a2_r3mq :: (Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32,
             Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32)
            -> GHC.Types.Int
            -> GHC.Types.Int
            -> GHC.Types.Int
            -> GHC.Word.Word32
            -> GHC.Ptr.Ptr GHC.Word.Word8
            -> GHC.Prim.State# GHC.Prim.RealWorld
            -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                  (GHC.Word.Word32, GHC.Types.Int) #)
 [GlobalId]
 [Arity 7
  NoCafRefs
  Str: DmdType LU(L)U(L)U(L)LU(L)L]
 a2_r3mq =
   __inline_me (\ (w_s33r :: (Data.Array.Base.UArray
                                GHC.Types.Int GHC.Word.Word32,
                              Data.Array.Base.UArray GHC.Types.Int
 GHC.Word.Word32))
                  (w1_s33s :: GHC.Types.Int)
                  (w2_s33w :: GHC.Types.Int)
                  (w3_s33A :: GHC.Types.Int)
                  (w4_s33E :: GHC.Word.Word32)
                  (w5_s33F :: GHC.Ptr.Ptr GHC.Word.Word8)
                  (w6_s33J :: GHC.Prim.State# GHC.Prim.RealWorld) ->
                  case w1_s33s of w7_X35h { GHC.Types.I# ww_s33u ->
                  case w2_s33w of w8_X35q { GHC.Types.I# ww1_s33y ->
                  case w3_s33A of w9_X35z { GHC.Types.I# ww2_s33C ->
                  case w5_s33F of w10_X35J { GHC.Ptr.Ptr ww3_s33H ->
                  $wa1_r3mo w_s33r ww_s33u ww1_s33y ww2_s33C w4_s33E
 ww3_s33H w6_s33J
                  }
                  }
                  }
                  })

 ------------------------------------------------------------------------

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/3458>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to