[project @ 1997-07-31 00:05:10 by sof]
[ghc-hetmet.git] / ghc / compiler / tests / ccall / cc005.stderr
index ab13745..ed9f6bb 100644 (file)
-Typechecked:
-lit.t444 = D# 2.0000000000000000##
-lit.t443 = F# 1.0000000000000000#
-AbsBinds [] [] [(a.t439, Test.a{-r79-})]
-    {- nonrec -}
-    a.t439 :: IoWorld -> (Int, IoWorld)
-    a.t439
-       = ccall  a [Int] 
-{- nonrec -}
-{- nonrec -}
-AbsBinds [] [] [(b.t440, Test.b{-r80-})]
-    {- nonrec -}
-    b.t440 :: Int -> IoWorld -> (Int, IoWorld)
-    b.t440
-       x.r212 = ccall  b [Int, Int] x.r212
-{- nonrec -}
-{- nonrec -}
-AbsBinds [] [] [(c.t441, Test.c{-r81-})]
-    {- nonrec -}
-    c.t441 :: Int -> Char -> Float -> Double -> IoWorld -> (Float, IoWorld)
-    c.t441
-       x1.r213 x2.r214 x3.r215 x4.r216
-               = ccall  c [Float, Int, Char, Float, Double]
-                     x1.r213 x2.r214 x3.r215 x4.r216
-{- nonrec -}
-{- nonrec -}
-AbsBinds [] [] [(d.t442, Test.d{-r82-})]
-    {- nonrec -}
-    d.t442 :: IoWorld -> (Float, IoWorld)
-    d.t442
-       = (thenIO{-r102-} [Int, Float])
-             Test.a{-r79-}
-             (\ x.r217 -> (thenIO{-r102-} [Int, Float])
-                              (Test.b{-r80-} x.r217)
-                              (\ y.r218 -> Test.c{-r81-}
-                                               y.r218 'f' lit.t443 lit.t444))
-{- nonrec -}
-{- nonrec -}
-Desugared:
-{- plain CoRec -}
-lit.t444 :: Double
-_NI_
-lit.t444 = (\ tpl.d0# -> D#! tpl.d0#) 2.0000000000000000##
-lit.t443 :: Float
-_NI_
-lit.t443 = (\ tpl.d1# -> F#! tpl.d1#) 1.0000000000000000#
-Test.a{-r79-} :: IoWorld -> (Int, IoWorld)
-_NI_
-Test.a{-r79-} =
-    \ ds.d2 ->
+
+NOTE: Simplifier still going after 4 iterations; bailing out.
+
+
+================================================================================
+STG syntax:
+nrlit_s25b =
+     PrelNum.:%{-5l,p-}{i}! [PrelNum.integer_2{-8e,p-} PrelNum.integer_1{-8d,p-}];
+lit_a19u =
+    (False, True, False, False, True) [] \u []
        case
-           (case
-                (case ds.d2 of {
-                   IoWorld ds.d3# -> ds.d3#
-                 })
-            of {
-              a.d8# -> ( _CCALL_ a [] Int# )! a.d8#
-            })
+           PrelNum.$d14{-rtM,p-} ::{PrelNum.Fractional{-26,p-} PrelBase.Double{-3a,p-}}
        of {
-         IntPrimAndIoWorld ds.d4#  ds.d5# ->
-             let {
-               a.d6 :: Int
-               _NI_
-               a.d6 = I#! ds.d4# } in
-             let {
-               a.d7 :: IoWorld
-               _NI_
-               a.d7 = IoWorld! ds.d5#
-             } in  Tup2! Int IoWorld a.d6 a.d7
-       }
-Test.b{-r80-} :: Int -> IoWorld -> (Int, IoWorld)
-_NI_
-Test.b{-r80-} =
-    \ x.r212  ds.d9 ->
+           -- lvs: []; rhs lvs: []; uniq: c2b9
+         PrelTup.(,,,){-64,p-}{i} tpl_s1V1 tpl_s1V2 tpl_s1V3 tpl_s1V0 ->
+             tpl_s1V0
+                 nrlit_s25b;
+       };
+nrlit_s25c =
+     PrelNum.:%{-5l,p-}{i}! [PrelNum.integer_1{-8d,p-} PrelNum.integer_1{-8d,p-}];
+lit_a19w =
+    (False, True, False, False, True) [] \u []
        case
-           (case
-                (case ds.d9 of {
-                   IoWorld ds.d10# -> ds.d10#
-                 })
-            of {
-              a.d16# ->
-                  case
-                      (case x.r212 of {
-                         I# ds.d11# -> ds.d11#
-                       })
-                  of {
-                    a.d17# -> ( _CCALL_ b [Int#] Int# )! a.d16# a.d17#
-                  }
-            })
+           PrelNum.$d23{-rtW,p-} ::{PrelNum.Fractional{-26,p-} PrelBase.Float{-3c,p-}}
        of {
-         IntPrimAndIoWorld ds.d12#  ds.d13# ->
-             let {
-               a.d14 :: Int
-               _NI_
-               a.d14 = I#! ds.d12# } in
-             let {
-               a.d15 :: IoWorld
-               _NI_
-               a.d15 = IoWorld! ds.d13#
-             } in  Tup2! Int IoWorld a.d14 a.d15
+           -- lvs: []; rhs lvs: []; uniq: c2ba
+         PrelTup.(,,,){-64,p-}{i} tpl_s1Vt tpl_s1Vu tpl_s1Vv tpl_s1Vs ->
+             tpl_s1Vs
+                 nrlit_s25c;
+       };
+s_s1MF =
+     [] \r [ds_s1VJ]
+       case ds_s1VJ ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-} of {
+           -- lvs: [ds_s1VJ]; rhs lvs: []; uniq: c2bb
+         STBase.S#{-5D,p-}{i} ds_s1Wa ->
+             case
+                 _ccall_ a [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-})]# [ds_s1Wa] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
+             of {
+                 -- lvs: [ds_s1Wa]; rhs lvs: []; uniq: c2bc
+               STBase.StateAndInt#{-5v,p-}{i} ds_s1Wk ds_s1W9 ->
+                   let {
+                     ds_s1WA =
+                          PrelBase.I#{-5b,p-}{i}! [ds_s1W9]; } in
+                   let {
+                     ds_s1Wz =
+                          STBase.S#{-5D,p-}{i}! [ds_s1Wk];
+                   } in 
+                     PrelTup.(,){-62,p-}{i}! [ds_s1WA ds_s1Wz];
+             };
+       };
+s_s1Xu =
+     [] \r [ds_s1WI]
+       case ds_s1WI ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-} of {
+           -- lvs: [ds_s1WI]; rhs lvs: []; uniq: c2bd
+         STBase.S#{-5D,p-}{i} ds_s1X9 ->
+             case
+                 _ccall_ a [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-})]# [ds_s1X9] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
+             of {
+                 -- lvs: [ds_s1X9]; rhs lvs: []; uniq: c2be
+               STBase.StateAndInt#{-5v,p-}{i} ds_s1Xj ds_s1X8 ->
+                   let {
+                     ds_s1XP =
+                          PrelBase.I#{-5b,p-}{i}! [ds_s1X8]; } in
+                   let {
+                     ds_s1XO =
+                          STBase.S#{-5D,p-}{i}! [ds_s1Xj];
+                   } in 
+                     PrelTup.(,){-62,p-}{i}! [ds_s1XP ds_s1XO];
+             };
+       };
+a{-r1,x-} =
+     [] \u []
+       s_s1Xu;
+b{-r3,x-} =
+     [] \r [x_s1XY]
+       let {
+         stg_c2ac =
+             (False, True, False, False, True) [x_s1XY] \r [ds_s1XN]
+                 case
+                     ds_s1XN{-lvs:x_s1XY-} ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+                 of {
+                     -- lvs: [ds_s1XN x_s1XY]; rhs lvs: [x_s1XY]; uniq: c2bf
+                   STBase.S#{-5D,p-}{i} ds_s1XZ ->
+                       case x_s1XY{-lvs:ds_s1XZ-} ::PrelBase.Int{-3g,p-} of {
+                           -- lvs: [x_s1XY ds_s1XZ]; rhs lvs: [ds_s1XZ]; uniq: c2bg
+                         PrelBase.I#{-5b,p-}{i} ds_s1Yp ->
+                             case
+                                 _ccall_ b [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-}) GHC.Int#{-3f,p-}]# [ds_s1XZ ds_s1Yp] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
+                             of {
+                                 -- lvs: [ds_s1XZ ds_s1Yp]; rhs lvs: []; uniq: c2bh
+                               STBase.StateAndInt#{-5v,p-}{i} ds_s1YA ds_s1Yq ->
+                                   let {
+                                     ds_s1Za =
+                                          PrelBase.I#{-5b,p-}{i}! [ds_s1Yq]; } in
+                                   let {
+                                     ds_s1Z9 =
+                                          STBase.S#{-5D,p-}{i}! [ds_s1YA];
+                                   } in 
+                                     PrelTup.(,){-62,p-}{i}! [ds_s1Za ds_s1Z9];
+                             };
+                       };
+                 };
+       } in 
+         stg_c2ac;
+c{-r5,x-} =
+     [] \r [x1_s1Zj x2_s1Zt x3_s1ZD x4_s1ZN]
+       let {
+         stg_c29C =
+             (False, True, False, False, True) [x1_s1Zj x2_s1Zt x3_s1ZD x4_s1ZN] \r [ds_s1Z8]
+                 case
+                     ds_s1Z8{-lvs:x1_s1Zj, x2_s1Zt, x3_s1ZD, x4_s1ZN-} ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+                 of {
+                     -- lvs: [ds_s1Z8 x1_s1Zj x2_s1Zt x3_s1ZD x4_s1ZN]; rhs lvs: [x1_s1Zj x2_s1Zt x3_s1ZD x4_s1ZN]; uniq: c2bi
+                   STBase.S#{-5D,p-}{i} ds_s1Zk ->
+                       case
+                           x1_s1Zj{-lvs:ds_s1Zk, x2_s1Zt, x3_s1ZD, x4_s1ZN-} ::PrelBase.Int{-3g,p-}
+                       of {
+                           -- lvs: [x1_s1Zj ds_s1Zk x2_s1Zt x3_s1ZD x4_s1ZN]; rhs lvs: [ds_s1Zk x2_s1Zt x3_s1ZD x4_s1ZN]; uniq: c2bj
+                         PrelBase.I#{-5b,p-}{i} ds_s1Zu ->
+                             case
+                                 x2_s1Zt{-lvs:ds_s1Zk, ds_s1Zu, x3_s1ZD, x4_s1ZN-} ::PrelBase.Char{-38,p-}
+                             of {
+                                 -- lvs: [ds_s1Zk x2_s1Zt ds_s1Zu x3_s1ZD x4_s1ZN]; rhs lvs: [ds_s1Zk ds_s1Zu x3_s1ZD x4_s1ZN]; uniq: c2bk
+                               PrelBase.C#{-54,p-}{i} ds_s1ZE ->
+                                   case
+                                       x3_s1ZD{-lvs:ds_s1Zk, ds_s1Zu, ds_s1ZE, x4_s1ZN-} ::PrelBase.Float{-3c,p-}
+                                   of {
+                                       -- lvs: [ds_s1Zk ds_s1Zu x3_s1ZD ds_s1ZE x4_s1ZN]; rhs lvs: [ds_s1Zk ds_s1Zu ds_s1ZE x4_s1ZN]; uniq: c2bl
+                                     PrelBase.F#{-59,p-}{i} ds_s1ZO ->
+                                         case
+                                             x4_s1ZN{-lvs:ds_s1Zk, ds_s1Zu, ds_s1ZE, ds_s1ZO-} ::PrelBase.Double{-3a,p-}
+                                         of {
+                                             -- lvs: [ds_s1Zk ds_s1Zu ds_s1ZE x4_s1ZN ds_s1ZO]; rhs lvs: [ds_s1Zk ds_s1Zu ds_s1ZE ds_s1ZO]; uniq: c2bm
+                                           PrelBase.D#{-56,p-}{i} ds_s20e ->
+                                               case
+                                                   _ccall_ c [(STBase.StateAndFloat#{-3C,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-}) GHC.Int#{-3f,p-} GHC.Char#{-37,p-} GHC.Float#{-3b,p-} GHC.Double#{-39,p-}]# [ds_s1Zk ds_s1Zu ds_s1ZE ds_s1ZO ds_s20e] ::STBase.StateAndFloat#{-3C,p-} GHC.RealWorld{-3s,p-}
+                                               of {
+                                                   -- lvs: [ds_s1Zk ds_s1Zu ds_s1ZE ds_s1ZO ds_s20e]; rhs lvs: []; uniq: c2bn
+                                                 STBase.StateAndFloat#{-5u,p-}{i} ds_s20p ds_s20f ->
+                                                     let {
+                                                       ds_s217 =
+                                                            PrelBase.F#{-59,p-}{i}! [ds_s20f]; } in
+                                                     let {
+                                                       ds_s216 =
+                                                            STBase.S#{-5D,p-}{i}! [ds_s20p];
+                                                     } in 
+                                                       PrelTup.(,){-62,p-}{i}! [ds_s217 ds_s216];
+                                               };
+                                         };
+                                   };
+                             };
+                       };
+                 };
+       } in 
+         stg_c29C;
+d{-r7,x-} =
+     [] \u []
+       let {
+         ds_s258 =
+              [] \r [x_s21g]
+                 let { s_s22a =  [x_s21g] \r [ds_s215]
+                         case
+                             ds_s215{-lvs:x_s21g-} ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+                         of {
+                             -- lvs: [ds_s215 x_s21g]; rhs lvs: [x_s21g]; uniq: c2bo
+                           STBase.S#{-5D,p-}{i} ds_s21h ->
+                               case x_s21g{-lvs:ds_s21h-} ::PrelBase.Int{-3g,p-} of {
+                                   -- lvs: [x_s21g ds_s21h]; rhs lvs: [ds_s21h]; uniq: c2bp
+                                 PrelBase.I#{-5b,p-}{i} ds_s21H ->
+                                     case
+                                         _ccall_ b [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-}) GHC.Int#{-3f,p-}]# [ds_s21h ds_s21H] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
+                                     of {
+                                         -- lvs: [ds_s21h ds_s21H]; rhs lvs: []; uniq: c2bq
+                                       STBase.StateAndInt#{-5v,p-}{i} ds_s21S ds_s21I ->
+                                           let {
+                                             ds_s22c =
+                                                  PrelBase.I#{-5b,p-}{i}! [ds_s21I]; } in
+                                           let {
+                                             ds_s22b =
+                                                  STBase.S#{-5D,p-}{i}! [ds_s21S];
+                                           } in 
+                                             PrelTup.(,){-62,p-}{i}! [ds_s22c ds_s22b];
+                                     };
+                               };
+                         } } in
+                 let { s_s23h =  [x_s21g] \r [ds_s22k]
+                         case
+                             ds_s22k{-lvs:x_s21g-} ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+                         of {
+                             -- lvs: [x_s21g ds_s22k]; rhs lvs: [x_s21g]; uniq: c2br
+                           STBase.S#{-5D,p-}{i} ds_s22t ->
+                               case x_s21g{-lvs:ds_s22t-} ::PrelBase.Int{-3g,p-} of {
+                                   -- lvs: [x_s21g ds_s22t]; rhs lvs: [ds_s22t]; uniq: c2bs
+                                 PrelBase.I#{-5b,p-}{i} ds_s22T ->
+                                     case
+                                         _ccall_ b [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-}) GHC.Int#{-3f,p-}]# [ds_s22t ds_s22T] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
+                                     of {
+                                         -- lvs: [ds_s22t ds_s22T]; rhs lvs: []; uniq: c2bt
+                                       STBase.StateAndInt#{-5v,p-}{i} ds_s234 ds_s22U ->
+                                           let {
+                                             ds_s23A =
+                                                  PrelBase.I#{-5b,p-}{i}! [ds_s22U]; } in
+                                           let {
+                                             ds_s23z =
+                                                  STBase.S#{-5D,p-}{i}! [ds_s234];
+                                           } in 
+                                             PrelTup.(,){-62,p-}{i}! [ds_s23A ds_s23z];
+                                     };
+                               };
+                         } } in
+                 let {
+                   ds_s24V =
+                        [] \r [y_s23K]
+                           let {
+                             stg_c28E =
+                                 (False, True, False, False, True) [y_s23K] \r [ds_s23y]
+                                     case
+                                         ds_s23y{-lvs:y_s23K-} ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+                                     of {
+                                         -- lvs: [ds_s23y y_s23K]; rhs lvs: [y_s23K]; uniq: c2bu
+                                       STBase.S#{-5D,p-}{i} ds_s23L ->
+                                           case y_s23K{-lvs:ds_s23L-} ::PrelBase.Int{-3g,p-} of {
+                                               -- lvs: [y_s23K ds_s23L]; rhs lvs: [ds_s23L]; uniq: c2bv
+                                             PrelBase.I#{-5b,p-}{i} ds_s23U ->
+                                                 case
+                                                     lit_a19w{-lvs:ds_s23L, ds_s23U-} ::PrelBase.Float{-3c,p-}
+                                                 of {
+                                                     -- lvs: [ds_s23L ds_s23U]; rhs lvs: [ds_s23L ds_s23U]; uniq: c2bw
+                                                   PrelBase.F#{-59,p-}{i} ds_s243 ->
+                                                       case
+                                                           lit_a19u{-lvs:ds_s23L, ds_s23U, ds_s243-} ::PrelBase.Double{-3a,p-}
+                                                       of {
+                                                           -- lvs: [ds_s23L ds_s23U ds_s243]; rhs lvs: [ds_s23L ds_s23U ds_s243]; uniq: c2bx
+                                                         PrelBase.D#{-56,p-}{i} ds_s24t ->
+                                                             case
+                                                                 _ccall_ c [(STBase.StateAndFloat#{-3C,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-}) GHC.Int#{-3f,p-} GHC.Char#{-37,p-} GHC.Float#{-3b,p-} GHC.Double#{-39,p-}]# [ds_s23L ds_s23U 'f' ds_s243 ds_s24t] ::STBase.StateAndFloat#{-3C,p-} GHC.RealWorld{-3s,p-}
+                                                             of {
+                                                                 -- lvs: [ds_s23L ds_s23U ds_s243 ds_s24t]; rhs lvs: []; uniq: c2by
+                                                               STBase.StateAndFloat#{-5u,p-}{i} ds_s24E ds_s24u ->
+                                                                   let {
+                                                                     ds_s24U =
+                                                                          PrelBase.F#{-59,p-}{i}! [ds_s24u]; } in
+                                                                   let {
+                                                                     ds_s24T =
+                                                                          STBase.S#{-5D,p-}{i}! [ds_s24E];
+                                                                   } in 
+                                                                     PrelTup.(,){-62,p-}{i}! [ds_s24U ds_s24T];
+                                                             };
+                                                       };
+                                                 };
+                                           };
+                                     };
+                           } in 
+                             stg_c28E;
+                 } in 
+                   STBase.thenPrimIO{-r4w,p-}
+                       s_s23h ds_s24V;
+       } in 
+         STBase.thenPrimIO{-r4w,p-}
+             s_s1Xu ds_s258;
+
+
+================================================================================
+Flat Abstract C:
+ED_(PrelNum_integerZu2_closure);
+ED_(PrelNum_integerZu1_closure);
+SET_STATIC_HDR(s25b_closure,PrelNum_ZcZ37_static_info,0,static ,ED_RO_)
+  , (W_)PrelNum_integerZu2_closure, (W_)PrelNum_integerZu1_closure
+};
+IFN_(ret_c2b9) {
+ID_(s25b_closure);
+       FB_
+       SpA[-1]=s25b_closure;
+       RetReg=StdUpdRetVecReg;
+       R1=R6;
+       SpA=SpA-1;
+       SpB=SpB-1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(6,1,1,1,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+UNVECTBL(static,vtbl_c2b9,ret_c2b9)
+STATIC_ITBL(a19u_info,a19u_entry,StdErrorCode,1,-1,(STATIC_VHS+
+                                                   2),0,static const,IF_,0,0,0);
+IFN_(a19u_entry) {
+ED_(PrelNum_Z36d14_closure);
+       FB_
+       STK_CHK(1,1,5,0,0,0,1);
+       HEAP_CHK(1,(BH_HS+2),1);
+       SET_BH_HDR(Hp-(BH_HS+1),BH_UPD_info,0,(BH_VHS+2),0);
+       UPD_CAF(R1.p,Hp-(BH_HS+1));
+       PUSH_STD_UPD_FRAME(Hp-(BH_HS+1),0,0);
+       RetReg=(StgRetAddr)UNVEC(ret_c2b9,vtbl_c2b9);
+       R1.p=PrelNum_Z36d14_closure;
+       SpB=SpB+5;
+       ENT_VIA_NODE();
+       GRAN_EXEC(19,2,2,8,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+SET_STATIC_HDR(a19u_closure,a19u_info,0,static ,ID_RO_)
+  , (W_)0, (W_)0
+};
+ED_(PrelNum_integerZu1_closure);
+SET_STATIC_HDR(s25c_closure,PrelNum_ZcZ37_static_info,0,static ,ED_RO_)
+  , (W_)PrelNum_integerZu1_closure, (W_)PrelNum_integerZu1_closure
+};
+IFN_(ret_c2ba) {
+ID_(s25c_closure);
+       FB_
+       SpA[-1]=s25c_closure;
+       RetReg=StdUpdRetVecReg;
+       R1=R6;
+       SpA=SpA-1;
+       SpB=SpB-1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(6,1,1,1,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+UNVECTBL(static,vtbl_c2ba,ret_c2ba)
+STATIC_ITBL(a19w_info,a19w_entry,StdErrorCode,1,-1,(STATIC_VHS+
+                                                   2),0,static const,IF_,0,0,0);
+IFN_(a19w_entry) {
+ED_(PrelNum_Z36d23_closure);
+       FB_
+       STK_CHK(1,1,5,0,0,0,1);
+       HEAP_CHK(1,(BH_HS+2),1);
+       SET_BH_HDR(Hp-(BH_HS+1),BH_UPD_info,0,(BH_VHS+2),0);
+       UPD_CAF(R1.p,Hp-(BH_HS+1));
+       PUSH_STD_UPD_FRAME(Hp-(BH_HS+1),0,0);
+       RetReg=(StgRetAddr)UNVEC(ret_c2ba,vtbl_c2ba);
+       R1.p=PrelNum_Z36d23_closure;
+       SpB=SpB+5;
+       ENT_VIA_NODE();
+       GRAN_EXEC(19,2,2,8,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+SET_STATIC_HDR(a19w_closure,a19w_info,0,static ,ID_RO_)
+  , (W_)0, (W_)0
+};
+IFN_(ret_c2bb) {
+ED_RO_(PrelBase_IZh_con_info);
+ED_(STBase_SZh_static_closure);
+ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
+I_ s1W9;
+       FB_
+       HEAP_CHK(0,(_FHS+1),0);
+       {
+       I_ _ccall_result;
+       CALLER_SAVE_Base
+       CALLER_SAVE_SpA
+       CALLER_SAVE_SuA
+       CALLER_SAVE_SpB
+       CALLER_SAVE_SuB
+       CALLER_SAVE_Ret
+       CALLER_SAVE_Hp
+       CALLER_SAVE_HpLim
+       _ccall_result = (a());
+       CALLER_RESTORE_Base
+       CALLER_RESTORE_SpA
+       CALLER_RESTORE_SuA
+       CALLER_RESTORE_SpB
+       CALLER_RESTORE_SuB
+       CALLER_RESTORE_Ret
+       CALLER_RESTORE_Hp
+       CALLER_RESTORE_HpLim
+       CALLER_RESTORE_StdUpdRetVec
+       CALLER_RESTORE_StkStub
+       s1W9=_ccall_result;
        }
-Test.c{-r81-} :: Int -> Char -> Float -> Double -> IoWorld -> (Float, IoWorld)
-_NI_
-Test.c{-r81-} =
-    \ x1.r213  x2.r214  x3.r215  x4.r216  ds.d18 ->
-       case
-           (case
-                (case ds.d18 of {
-                   IoWorld ds.d19# -> ds.d19#
-                 })
-            of {
-              a.d28# ->
-                  case
-                      (case x1.r213 of {
-                         I# ds.d20# -> ds.d20#
-                       })
-                  of {
-                    a.d29# ->
-                        case
-                            (case x2.r214 of {
-                               C# ds.d21# -> ds.d21#
-                             })
-                        of {
-                          a.d30# ->
-                              case
-                                  (case x3.r215 of {
-                                     F# ds.d22# -> ds.d22#
-                                   })
-                              of {
-                                a.d31# ->
-                                    case
-                                        (case x4.r216 of {
-                                           D# ds.d23# -> ds.d23#
-                                         })
-                                    of {
-                                      a.d32# ->
-                                          ( _CCALL_ c [Int#,
-                                                       Char#,
-                                                       Float#,
-                                                       Double#] Float# )!
-                                              a.d28#
-                                              a.d29#
-                                              a.d30#
-                                              a.d31#
-                                              a.d32#
-                                    }
-                              }
-                        }
-                  }
-            })
-       of {
-         FloatPrimAndIoWorld ds.d24#  ds.d25# ->
-             let {
-               a.d26 :: Float
-               _NI_
-               a.d26 = F#! ds.d24# } in
-             let {
-               a.d27 :: IoWorld
-               _NI_
-               a.d27 = IoWorld! ds.d25#
-             } in  Tup2! Float IoWorld a.d26 a.d27
+       SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
+       *Hp=(W_)(s1W9);
+       R4.p=STBase_SZh_static_closure;
+       R3.p=Hp-_FHS;
+       SpB=SpB-1;
+       R2.d=PrelTup_Z40Z44Z41_inregs_info;
+       GRAN_EXEC(10,2,21,22,0);
+       JMP_(DIRECT((StgRetAddr)(SpB[1])));
+       FE_
+}
+UNVECTBL(static,vtbl_c2bb,ret_c2bb)
+STATIC_ITBL(s1MF_info,s1MF_entry,StdErrorCode,1,-1,STATIC_VHS,0,static const,IF_,0,0,0);
+IFN_(s1MF_entry) {
+ID_(s1MF_closure);
+IF_(s1MF_fast1);
+       FB_
+       ARGS_CHK_A_LOAD_NODE(1,s1MF_closure);
+       R1.p=*SpA;
+       SpA=SpA+1;
+       GRAN_EXEC(5,2,1,0,0);
+       JMP_(s1MF_fast1);
+       FE_
+}
+IFN_(s1MF_fast1) {
+       FB_
+       STK_CHK(1,0,1,0,0,0,0);
+       SpB[1]=(W_)(RetReg);
+       RetReg=(StgRetAddr)UNVEC(ret_c2bb,vtbl_c2bb);
+       SpB=SpB+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(3,1,1,1,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+SET_STATIC_HDR(s1MF_closure,s1MF_info,0,static ,ID_RO_)
+};
+IFN_(ret_c2bd) {
+ED_RO_(PrelBase_IZh_con_info);
+ED_(STBase_SZh_static_closure);
+ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
+I_ s1X8;
+       FB_
+       HEAP_CHK(0,(_FHS+1),0);
+       {
+       I_ _ccall_result;
+       CALLER_SAVE_Base
+       CALLER_SAVE_SpA
+       CALLER_SAVE_SuA
+       CALLER_SAVE_SpB
+       CALLER_SAVE_SuB
+       CALLER_SAVE_Ret
+       CALLER_SAVE_Hp
+       CALLER_SAVE_HpLim
+       _ccall_result = (a());
+       CALLER_RESTORE_Base
+       CALLER_RESTORE_SpA
+       CALLER_RESTORE_SuA
+       CALLER_RESTORE_SpB
+       CALLER_RESTORE_SuB
+       CALLER_RESTORE_Ret
+       CALLER_RESTORE_Hp
+       CALLER_RESTORE_HpLim
+       CALLER_RESTORE_StdUpdRetVec
+       CALLER_RESTORE_StkStub
+       s1X8=_ccall_result;
+       }
+       SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
+       *Hp=(W_)(s1X8);
+       R4.p=STBase_SZh_static_closure;
+       R3.p=Hp-_FHS;
+       SpB=SpB-1;
+       R2.d=PrelTup_Z40Z44Z41_inregs_info;
+       GRAN_EXEC(10,2,21,22,0);
+       JMP_(DIRECT((StgRetAddr)(SpB[1])));
+       FE_
+}
+UNVECTBL(static,vtbl_c2bd,ret_c2bd)
+STATIC_ITBL(s1Xu_info,s1Xu_entry,StdErrorCode,1,-1,STATIC_VHS,0,static const,IF_,0,0,0);
+IFN_(s1Xu_entry) {
+ID_(s1Xu_closure);
+IF_(s1Xu_fast1);
+       FB_
+       ARGS_CHK_A_LOAD_NODE(1,s1Xu_closure);
+       R1.p=*SpA;
+       SpA=SpA+1;
+       GRAN_EXEC(5,2,1,0,0);
+       JMP_(s1Xu_fast1);
+       FE_
+}
+IFN_(s1Xu_fast1) {
+       FB_
+       STK_CHK(1,0,1,0,0,0,0);
+       SpB[1]=(W_)(RetReg);
+       RetReg=(StgRetAddr)UNVEC(ret_c2bd,vtbl_c2bd);
+       SpB=SpB+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(3,1,1,1,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+SET_STATIC_HDR(s1Xu_closure,s1Xu_info,0,static ,ID_RO_)
+};
+STATIC_ITBL(Test_a_info,Test_a_entry,StdErrorCode,1,-1,(STATIC_VHS+
+                                                       2),0,const,EF_,0,0,0);
+FN_(Test_a_entry) {
+IF_(s1Xu_entry);
+       FB_
+       STK_CHK(1,0,4,0,0,0,1);
+       HEAP_CHK(1,(BH_HS+2),1);
+       SET_BH_HDR(Hp-(BH_HS+1),BH_UPD_info,0,(BH_VHS+2),0);
+       UPD_CAF(R1.p,Hp-(BH_HS+1));
+       PUSH_STD_UPD_FRAME(Hp-(BH_HS+1),0,0);
+       RetReg=StdUpdRetVecReg;
+       SpB=SpB+4;
+       GRAN_EXEC(16,2,1,8,0);
+       JMP_(s1Xu_entry);
+       FE_
+}
+SET_STATIC_HDR(Test_a_closure,Test_a_info,0,,ED_RO_)
+  , (W_)0, (W_)0
+};
+IFN_(ret_c2bg) {
+ED_RO_(PrelBase_IZh_con_info);
+ED_(STBase_SZh_static_closure);
+ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
+I_ s1Yq;
+       FB_
+       HEAP_CHK(0,(_FHS+1),0);
+       {
+       I_ _ccall_result;
+       I_ _ccall_arg1=R3.i;
+       CALLER_SAVE_Base
+       CALLER_SAVE_SpA
+       CALLER_SAVE_SuA
+       CALLER_SAVE_SpB
+       CALLER_SAVE_SuB
+       CALLER_SAVE_Ret
+       CALLER_SAVE_Hp
+       CALLER_SAVE_HpLim
+       _ccall_result = (b((_ccall_arg1)));
+       CALLER_RESTORE_Base
+       CALLER_RESTORE_SpA
+       CALLER_RESTORE_SuA
+       CALLER_RESTORE_SpB
+       CALLER_RESTORE_SuB
+       CALLER_RESTORE_Ret
+       CALLER_RESTORE_Hp
+       CALLER_RESTORE_HpLim
+       CALLER_RESTORE_StdUpdRetVec
+       CALLER_RESTORE_StkStub
+       s1Yq=_ccall_result;
+       }
+       SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
+       *Hp=(W_)(s1Yq);
+       R4.p=STBase_SZh_static_closure;
+       R3.p=Hp-_FHS;
+       SpB=SpB-1;
+       R2.d=PrelTup_Z40Z44Z41_inregs_info;
+       GRAN_EXEC(10,2,22,22,0);
+       JMP_(DIRECT((StgRetAddr)(SpB[1])));
+       FE_
+}
+UNVECTBL(static,vtbl_c2bg,ret_c2bg)
+IFN_(ret_c2bf) {
+       FB_
+       RetReg=(StgRetAddr)UNVEC(ret_c2bg,vtbl_c2bg);
+       R1.p=*SpA;
+       SpA=SpA+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(3,1,2,1,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+UNVECTBL(static,vtbl_c2bf,ret_c2bf)
+SPEC_N_ITBL(c2ac_info,c2ac_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
+IFN_(c2ac_entry) {
+IF_(c2ac_fast1);
+       FB_
+       ARGS_CHK_A(1);
+       R2.p=*SpA;
+       SpA=SpA+1;
+       GRAN_EXEC(5,2,1,0,0);
+       JMP_(c2ac_fast1);
+       FE_
+}
+IFN_(c2ac_fast1) {
+       FB_
+       STK_CHK(3,1,1,0,0,0,1);
+       SpB[1]=(W_)(RetReg);
+       RetReg=(StgRetAddr)UNVEC(ret_c2bf,vtbl_c2bf);
+       SpA[-1]=(P_)(R1.p[_FHS]);
+       R1=R2;
+       SpA=SpA-1;
+       SpB=SpB+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(5,1,2,2,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+STATIC_ITBL(Test_b_info,Test_b_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
+FN_(Test_b_entry) {
+ED_(Test_b_closure);
+EF_(Test_b_fast1);
+       FB_
+       ARGS_CHK_A_LOAD_NODE(1,Test_b_closure);
+       R1.p=*SpA;
+       SpA=SpA+1;
+       GRAN_EXEC(5,2,1,0,0);
+       JMP_(Test_b_fast1);
+       FE_
+}
+FN_(Test_b_fast1) {
+ID_RO_(c2ac_info);
+IF_(c2ac_entry);
+       FB_
+       HEAP_CHK(1,(_FHS+1),0);
+       SET_SPEC_HDR(Hp-_FHS,c2ac_info,0,1,1);
+       *Hp=(W_)(R1.p);
+       R1.p=Hp-_FHS;
+       GRAN_EXEC(5,2,0,2,0);
+       JMP_(c2ac_entry);
+       FE_
+}
+SET_STATIC_HDR(Test_b_closure,Test_b_info,0,,ED_RO_)
+};
+IFN_(ret_c2bm) {
+ED_RO_(PrelBase_FZh_con_info);
+ED_(STBase_SZh_static_closure);
+ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
+StgFloat s20f;
+       FB_
+       HEAP_CHK(0,(_FHS+1),0);
+       {
+       StgFloat _ccall_result;
+       I_ _ccall_arg1=(I_)(SpB[-2]);
+       StgChar _ccall_arg2=(StgChar)(SpB[-1]);
+       StgFloat _ccall_arg3=PK_FLT(SpB);
+       StgDouble _ccall_arg4=DblReg1;
+       CALLER_SAVE_Base
+       CALLER_SAVE_SpA
+       CALLER_SAVE_SuA
+       CALLER_SAVE_SpB
+       CALLER_SAVE_SuB
+       CALLER_SAVE_Ret
+       CALLER_SAVE_Hp
+       CALLER_SAVE_HpLim
+       _ccall_result = (c((_ccall_arg1),(_ccall_arg2),(_ccall_arg3),(_ccall_arg4)));
+       CALLER_RESTORE_Base
+       CALLER_RESTORE_SpA
+       CALLER_RESTORE_SuA
+       CALLER_RESTORE_SpB
+       CALLER_RESTORE_SuB
+       CALLER_RESTORE_Ret
+       CALLER_RESTORE_Hp
+       CALLER_RESTORE_HpLim
+       CALLER_RESTORE_StdUpdRetVec
+       CALLER_RESTORE_StkStub
+       s20f=_ccall_result;
+       }
+       SET_SPEC_HDR(Hp-_FHS,PrelBase_FZh_con_info,0,1,0);
+       ASSIGN_FLT(Hp,s20f);
+       R4.p=STBase_SZh_static_closure;
+       R3.p=Hp-_FHS;
+       SpB=SpB-4;
+       R2.d=PrelTup_Z40Z44Z41_inregs_info;
+       GRAN_EXEC(10,2,25,22,0);
+       JMP_(DIRECT((StgRetAddr)(SpB[1])));
+       FE_
+}
+UNVECTBL(static,vtbl_c2bm,ret_c2bm)
+IFN_(ret_c2bl) {
+       FB_
+       RetReg=(StgRetAddr)UNVEC(ret_c2bm,vtbl_c2bm);
+       R1.p=*SpA;
+       ASSIGN_FLT(SpB+1,FltReg1);
+       SpA=SpA+4;
+       SpB=SpB+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(4,1,2,1,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+UNVECTBL(static,vtbl_c2bl,ret_c2bl)
+IFN_(ret_c2bk) {
+       FB_
+       RetReg=(StgRetAddr)UNVEC(ret_c2bl,vtbl_c2bl);
+       R1.p=SpA[1];
+       SpB[1]=(W_)(R3.c);
+       SpA[1]=StkStubReg;
+       SpB=SpB+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(3,1,2,2,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+UNVECTBL(static,vtbl_c2bk,ret_c2bk)
+IFN_(ret_c2bj) {
+       FB_
+       RetReg=(StgRetAddr)UNVEC(ret_c2bk,vtbl_c2bk);
+       R1.p=SpA[2];
+       SpB[1]=(W_)(R3.i);
+       SpA[2]=StkStubReg;
+       SpB=SpB+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(3,1,2,2,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+UNVECTBL(static,vtbl_c2bj,ret_c2bj)
+IFN_(ret_c2bi) {
+       FB_
+       RetReg=(StgRetAddr)UNVEC(ret_c2bj,vtbl_c2bj);
+       R1.p=SpA[3];
+       SpA[3]=StkStubReg;
+       ENT_VIA_NODE();
+       GRAN_EXEC(2,1,2,2,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+UNVECTBL(static,vtbl_c2bi,ret_c2bi)
+SPEC_N_ITBL(c29C_info,c29C_entry,StdErrorCode,1,-1,4,4,static const,IF_,0,0,0);
+IFN_(c29C_entry) {
+IF_(c29C_fast1);
+       FB_
+       ARGS_CHK_A(1);
+       R2.p=*SpA;
+       SpA=SpA+1;
+       GRAN_EXEC(5,2,1,0,0);
+       JMP_(c29C_fast1);
+       FE_
+}
+IFN_(c29C_fast1) {
+       FB_
+       STK_CHK(3,4,4,0,0,0,1);
+       SpB[1]=(W_)(RetReg);
+       RetReg=(StgRetAddr)UNVEC(ret_c2bi,vtbl_c2bi);
+       SpA[-4]=(P_)(R1.p[(_FHS+3)]);
+       SpA[-3]=(P_)(R1.p[(_FHS+2)]);
+       SpA[-2]=(P_)(R1.p[(_FHS+1)]);
+       SpA[-1]=(P_)(R1.p[_FHS]);
+       R1=R2;
+       SpA=SpA-4;
+       SpB=SpB+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(5,1,5,5,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+STATIC_ITBL(Test_c_info,Test_c_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
+FN_(Test_c_entry) {
+ED_(Test_c_closure);
+EF_(Test_c_fast4);
+       FB_
+       ARGS_CHK_A_LOAD_NODE(4,Test_c_closure);
+       R1.p=*SpA;
+       R2.p=SpA[1];
+       R3.p=SpA[2];
+       R4.p=SpA[3];
+       SpA=SpA+4;
+       GRAN_EXEC(5,2,4,0,0);
+       JMP_(Test_c_fast4);
+       FE_
+}
+FN_(Test_c_fast4) {
+ID_RO_(c29C_info);
+IF_(c29C_entry);
+       FB_
+       HEAP_CHK(15,(_FHS+4),0);
+       SET_SPEC_HDR(Hp-(_FHS+3),c29C_info,0,4,4);
+       Hp[-3]=(W_)(R1.p);
+       Hp[-2]=(W_)(R2.p);
+       Hp[-1]=(W_)(R3.p);
+       *Hp=(W_)(R4.p);
+       R1.p=Hp-(_FHS+3);
+       GRAN_EXEC(5,2,0,5,0);
+       JMP_(c29C_entry);
+       FE_
+}
+SET_STATIC_HDR(Test_c_closure,Test_c_info,0,,ED_RO_)
+};
+IFN_(ret_c2bp) {
+ED_RO_(PrelBase_IZh_con_info);
+ED_(STBase_SZh_static_closure);
+ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
+I_ s21I;
+       FB_
+       HEAP_CHK(0,(_FHS+1),0);
+       {
+       I_ _ccall_result;
+       I_ _ccall_arg1=R3.i;
+       CALLER_SAVE_Base
+       CALLER_SAVE_SpA
+       CALLER_SAVE_SuA
+       CALLER_SAVE_SpB
+       CALLER_SAVE_SuB
+       CALLER_SAVE_Ret
+       CALLER_SAVE_Hp
+       CALLER_SAVE_HpLim
+       _ccall_result = (b((_ccall_arg1)));
+       CALLER_RESTORE_Base
+       CALLER_RESTORE_SpA
+       CALLER_RESTORE_SuA
+       CALLER_RESTORE_SpB
+       CALLER_RESTORE_SuB
+       CALLER_RESTORE_Ret
+       CALLER_RESTORE_Hp
+       CALLER_RESTORE_HpLim
+       CALLER_RESTORE_StdUpdRetVec
+       CALLER_RESTORE_StkStub
+       s21I=_ccall_result;
+       }
+       SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
+       *Hp=(W_)(s21I);
+       R4.p=STBase_SZh_static_closure;
+       R3.p=Hp-_FHS;
+       SpB=SpB-1;
+       R2.d=PrelTup_Z40Z44Z41_inregs_info;
+       GRAN_EXEC(10,2,22,22,0);
+       JMP_(DIRECT((StgRetAddr)(SpB[1])));
+       FE_
+}
+UNVECTBL(static,vtbl_c2bp,ret_c2bp)
+IFN_(ret_c2bo) {
+       FB_
+       RetReg=(StgRetAddr)UNVEC(ret_c2bp,vtbl_c2bp);
+       R1.p=*SpA;
+       SpA=SpA+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(3,1,2,1,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+UNVECTBL(static,vtbl_c2bo,ret_c2bo)
+SPEC_N_ITBL(s22a_info,s22a_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
+IFN_(s22a_entry) {
+IF_(s22a_fast1);
+       FB_
+       ARGS_CHK_A(1);
+       R2.p=*SpA;
+       SpA=SpA+1;
+       GRAN_EXEC(5,2,1,0,0);
+       JMP_(s22a_fast1);
+       FE_
+}
+IFN_(s22a_fast1) {
+       FB_
+       STK_CHK(3,1,1,0,0,0,1);
+       SpB[1]=(W_)(RetReg);
+       RetReg=(StgRetAddr)UNVEC(ret_c2bo,vtbl_c2bo);
+       SpA[-1]=(P_)(R1.p[_FHS]);
+       R1=R2;
+       SpA=SpA-1;
+       SpB=SpB+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(5,1,2,2,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+IFN_(ret_c2bs) {
+ED_RO_(PrelBase_IZh_con_info);
+ED_(STBase_SZh_static_closure);
+ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
+I_ s22U;
+       FB_
+       HEAP_CHK(0,(_FHS+1),0);
+       {
+       I_ _ccall_result;
+       I_ _ccall_arg1=R3.i;
+       CALLER_SAVE_Base
+       CALLER_SAVE_SpA
+       CALLER_SAVE_SuA
+       CALLER_SAVE_SpB
+       CALLER_SAVE_SuB
+       CALLER_SAVE_Ret
+       CALLER_SAVE_Hp
+       CALLER_SAVE_HpLim
+       _ccall_result = (b((_ccall_arg1)));
+       CALLER_RESTORE_Base
+       CALLER_RESTORE_SpA
+       CALLER_RESTORE_SuA
+       CALLER_RESTORE_SpB
+       CALLER_RESTORE_SuB
+       CALLER_RESTORE_Ret
+       CALLER_RESTORE_Hp
+       CALLER_RESTORE_HpLim
+       CALLER_RESTORE_StdUpdRetVec
+       CALLER_RESTORE_StkStub
+       s22U=_ccall_result;
+       }
+       SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
+       *Hp=(W_)(s22U);
+       R4.p=STBase_SZh_static_closure;
+       R3.p=Hp-_FHS;
+       SpB=SpB-1;
+       R2.d=PrelTup_Z40Z44Z41_inregs_info;
+       GRAN_EXEC(10,2,22,22,0);
+       JMP_(DIRECT((StgRetAddr)(SpB[1])));
+       FE_
+}
+UNVECTBL(static,vtbl_c2bs,ret_c2bs)
+IFN_(ret_c2br) {
+       FB_
+       RetReg=(StgRetAddr)UNVEC(ret_c2bs,vtbl_c2bs);
+       R1.p=*SpA;
+       SpA=SpA+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(3,1,2,1,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+UNVECTBL(static,vtbl_c2br,ret_c2br)
+SPEC_N_ITBL(s23h_info,s23h_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
+IFN_(s23h_entry) {
+IF_(s23h_fast1);
+       FB_
+       ARGS_CHK_A(1);
+       R2.p=*SpA;
+       SpA=SpA+1;
+       GRAN_EXEC(5,2,1,0,0);
+       JMP_(s23h_fast1);
+       FE_
+}
+IFN_(s23h_fast1) {
+       FB_
+       STK_CHK(3,1,1,0,0,0,1);
+       SpB[1]=(W_)(RetReg);
+       RetReg=(StgRetAddr)UNVEC(ret_c2br,vtbl_c2br);
+       SpA[-1]=(P_)(R1.p[_FHS]);
+       R1=R2;
+       SpA=SpA-1;
+       SpB=SpB+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(5,1,2,2,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+IFN_(ret_c2bx) {
+ED_RO_(PrelBase_FZh_con_info);
+ED_(STBase_SZh_static_closure);
+ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
+StgFloat s24u;
+       FB_
+       HEAP_CHK(0,(_FHS+1),0);
+       {
+       StgFloat _ccall_result;
+       I_ _ccall_arg1=(I_)(SpB[-1]);
+       StgChar _ccall_arg2=(C_)'f';
+       StgFloat _ccall_arg3=PK_FLT(SpB);
+       StgDouble _ccall_arg4=DblReg1;
+       CALLER_SAVE_Base
+       CALLER_SAVE_SpA
+       CALLER_SAVE_SuA
+       CALLER_SAVE_SpB
+       CALLER_SAVE_SuB
+       CALLER_SAVE_Ret
+       CALLER_SAVE_Hp
+       CALLER_SAVE_HpLim
+       _ccall_result = (c((_ccall_arg1),(_ccall_arg2),(_ccall_arg3),(_ccall_arg4)));
+       CALLER_RESTORE_Base
+       CALLER_RESTORE_SpA
+       CALLER_RESTORE_SuA
+       CALLER_RESTORE_SpB
+       CALLER_RESTORE_SuB
+       CALLER_RESTORE_Ret
+       CALLER_RESTORE_Hp
+       CALLER_RESTORE_HpLim
+       CALLER_RESTORE_StdUpdRetVec
+       CALLER_RESTORE_StkStub
+       s24u=_ccall_result;
        }
-Test.d{-r82-} :: IoWorld -> (Float, IoWorld)
-_NI_
-Test.d{-r82-} =
-    let {
-      a.d36 :: Int -> IoWorld -> (Float, IoWorld)
-      _NI_
-      a.d36 =
-         \ x.r217 ->
-             let {
-               a.d35 :: Int -> IoWorld -> (Float, IoWorld)
-               _NI_
-               a.d35 =
-                   \ y.r218 ->
-                       (let {
-                          a.d33 :: Char
-                          _NI_
-                          a.d33 = C#! 'f'#
-                        } in  Test.c{-r81-} y.r218 a.d33) lit.t443 lit.t444
-             } in 
-               (let {
-                  a.d34 :: IoWorld -> (Int, IoWorld)
-                  _NI_
-                  a.d34 = Test.b{-r80-} x.r217
-                } in  ((thenIO{-r102-} Int) Float) a.d34) a.d35
-    } in  ((thenIO{-r102-} Int) Float) Test.a{-r79-} a.d36
-{- end plain CoRec -}
+       SET_SPEC_HDR(Hp-_FHS,PrelBase_FZh_con_info,0,1,0);
+       ASSIGN_FLT(Hp,s24u);
+       R4.p=STBase_SZh_static_closure;
+       R3.p=Hp-_FHS;
+       SpB=SpB-3;
+       R2.d=PrelTup_Z40Z44Z41_inregs_info;
+       GRAN_EXEC(11,2,24,22,0);
+       JMP_(DIRECT((StgRetAddr)(SpB[1])));
+       FE_
+}
+UNVECTBL(static,vtbl_c2bx,ret_c2bx)
+IFN_(ret_c2bw) {
+ID_(a19u_closure);
+       FB_
+       RetReg=(StgRetAddr)UNVEC(ret_c2bx,vtbl_c2bx);
+       R1.p=a19u_closure;
+       ASSIGN_FLT(SpB+1,FltReg1);
+       SpB=SpB+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(5,1,1,1,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+UNVECTBL(static,vtbl_c2bw,ret_c2bw)
+IFN_(ret_c2bv) {
+ID_(a19w_closure);
+       FB_
+       RetReg=(StgRetAddr)UNVEC(ret_c2bw,vtbl_c2bw);
+       R1.p=a19w_closure;
+       SpB[1]=(W_)(R3.i);
+       SpB=SpB+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(5,1,1,1,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+UNVECTBL(static,vtbl_c2bv,ret_c2bv)
+IFN_(ret_c2bu) {
+       FB_
+       RetReg=(StgRetAddr)UNVEC(ret_c2bv,vtbl_c2bv);
+       R1.p=*SpA;
+       SpA=SpA+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(3,1,2,1,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+UNVECTBL(static,vtbl_c2bu,ret_c2bu)
+SPEC_N_ITBL(c28E_info,c28E_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
+IFN_(c28E_entry) {
+IF_(c28E_fast1);
+       FB_
+       ARGS_CHK_A(1);
+       R2.p=*SpA;
+       SpA=SpA+1;
+       GRAN_EXEC(5,2,1,0,0);
+       JMP_(c28E_fast1);
+       FE_
+}
+IFN_(c28E_fast1) {
+       FB_
+       STK_CHK(3,1,3,0,0,0,1);
+       SpB[1]=(W_)(RetReg);
+       RetReg=(StgRetAddr)UNVEC(ret_c2bu,vtbl_c2bu);
+       SpA[-1]=(P_)(R1.p[_FHS]);
+       R1=R2;
+       SpA=SpA-1;
+       SpB=SpB+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(5,1,2,2,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+SPEC_N_ITBL(s24V_info,s24V_entry,StdErrorCode,1,-1,1,0,static const,IF_,0,0,0);
+IFN_(s24V_entry) {
+IF_(s24V_fast1);
+       FB_
+       ARGS_CHK_A(1);
+       R2.p=*SpA;
+       SpA=SpA+1;
+       GRAN_EXEC(5,2,1,0,0);
+       JMP_(s24V_fast1);
+       FE_
+}
+IFN_(s24V_fast1) {
+ID_RO_(c28E_info);
+IF_(c28E_entry);
+       FB_
+       HEAP_CHK(3,(_FHS+1),1);
+       SET_SPEC_HDR(Hp-_FHS,c28E_info,0,1,1);
+       *Hp=(W_)(R2.p);
+       R1.p=Hp-_FHS;
+       GRAN_EXEC(5,2,0,2,0);
+       JMP_(c28E_entry);
+       FE_
+}
+SPEC_N_ITBL(s258_info,s258_entry,StdErrorCode,1,-1,1,0,static const,IF_,0,0,0);
+IFN_(s258_entry) {
+IF_(s258_fast1);
+       FB_
+       ARGS_CHK_A(1);
+       R2.p=*SpA;
+       SpA=SpA+1;
+       GRAN_EXEC(5,2,1,0,0);
+       JMP_(s258_fast1);
+       FE_
+}
+IFN_(s258_fast1) {
+ID_RO_(s22a_info);
+ID_RO_(s23h_info);
+ID_RO_(s24V_info);
+ED_(STBase_thenPrimIO_closure);
+       FB_
+       STK_CHK(3,2,0,0,0,0,1);
+       HEAP_CHK(3,((_FHS*3)+3),1);
+       SET_SPEC_HDR(Hp-((_FHS*3)+2),s22a_info,0,1,1);
+       Hp[-((_FHS*2)+2)]=(W_)(R2.p);
+       SET_SPEC_HDR(Hp-((_FHS*2)+1),s23h_info,0,1,1);
+       Hp[-(_FHS+1)]=(W_)(R2.p);
+       SET_SPEC_HDR(Hp-_FHS,s24V_info,0,1,0);
+       SpA[-1]=Hp-_FHS;
+       SpA[-2]=Hp-((_FHS*2)+1);
+       R1.p=STBase_thenPrimIO_closure;
+       SpA=SpA-2;
+       ENT_VIA_NODE();
+       GRAN_EXEC(11,2,3,7,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+STATIC_ITBL(Test_d_info,Test_d_entry,StdErrorCode,1,-1,(STATIC_VHS+
+                                                       2),0,const,EF_,0,0,0);
+FN_(Test_d_entry) {
+ID_RO_(s258_info);
+ID_(s1Xu_closure);
+ED_(STBase_thenPrimIO_closure);
+       FB_
+       STK_CHK(1,2,4,0,0,0,1);
+       HEAP_CHK(1,(BH_HS+_FHS+3),1);
+       SET_BH_HDR(Hp-(BH_HS+_FHS+2),BH_UPD_info,0,(BH_VHS+2),0);
+       UPD_CAF(R1.p,Hp-(BH_HS+_FHS+2));
+       PUSH_STD_UPD_FRAME(Hp-(BH_HS+_FHS+2),0,0);
+       SET_SPEC_HDR(Hp-_FHS,s258_info,0,1,0);
+       SpA[-1]=Hp-_FHS;
+       SpA[-2]=s1Xu_closure;
+       RetReg=StdUpdRetVecReg;
+       R1.p=STBase_thenPrimIO_closure;
+       SpA=SpA-2;
+       SpB=SpB+4;
+       ENT_VIA_NODE();
+       GRAN_EXEC(23,2,3,11,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+SET_STATIC_HDR(Test_d_closure,Test_d_info,0,,ED_RO_)
+  , (W_)0, (W_)0
+};
+ghc: module version changed to 1; reason: no old .hi file