Compiling ["Try-Hello.hs"]
Skipping haskell object file: Try-Hello.ho
Found dependency: Try-Hello.hs at Try-Hello.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Prelude.ho
Found dependency: Prelude at ~/prog/hs/devel/jhc/lib/Prelude.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Char.ho
Found dependency: Char at ~/prog/hs/devel/jhc/lib/Char.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Numeric.ho
Found dependency: Numeric at ~/prog/hs/devel/jhc/lib/Numeric.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Prelude.Text.ho
Found dependency: Prelude.Text at ~/prog/hs/devel/jhc/lib/Prelude.Text.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Jhc.IO.ho
Found dependency: Jhc.IO at ~/prog/hs/devel/jhc/lib/Jhc.IO.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Prelude.IOError.ho
Found dependency: Prelude.IOError at ~/prog/hs/devel/jhc/lib/Prelude.IOError.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Jhc.Tuples.ho
Found dependency: Jhc.Tuples at ~/prog/hs/devel/jhc/lib/Jhc.Tuples.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Prelude.Float.ho
Found dependency: Prelude.Float at ~/prog/hs/devel/jhc/lib/Prelude.Float.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Foreign/C/Types.ho
Found dependency: Foreign.C.Types at ~/prog/hs/devel/jhc/lib/Foreign/C/Types.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Foreign/Marshal/Alloc.ho
Found dependency: Foreign.Marshal.Alloc at ~/prog/hs/devel/jhc/lib/Foreign/Marshal/Alloc.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Foreign/Marshal/Utils.ho
Found dependency: Foreign.Marshal.Utils at ~/prog/hs/devel/jhc/lib/Foreign/Marshal/Utils.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Foreign/Ptr.ho
Found dependency: Foreign.Ptr at ~/prog/hs/devel/jhc/lib/Foreign/Ptr.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Foreign/Storable.ho
Found dependency: Foreign.Storable at ~/prog/hs/devel/jhc/lib/Foreign/Storable.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Jhc.Addr.ho
Found dependency: Jhc.Addr at ~/prog/hs/devel/jhc/lib/Jhc.Addr.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Data/Word.ho
Found dependency: Data.Word at ~/prog/hs/devel/jhc/lib/Data/Word.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Maybe.ho
Found dependency: Maybe at ~/prog/hs/devel/jhc/lib/Maybe.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Monad.ho
Found dependency: Monad at ~/prog/hs/devel/jhc/lib/Monad.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Prelude.IO.ho
Found dependency: Prelude.IO at ~/prog/hs/devel/jhc/lib/Prelude.IO.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Foreign/C/String.ho
Found dependency: Foreign.C.String at ~/prog/hs/devel/jhc/lib/Foreign/C/String.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Foreign/Marshal/Array.ho
Found dependency: Foreign.Marshal.Array at ~/prog/hs/devel/jhc/lib/Foreign/Marshal/Array.hs
Skipping haskell object file: ~/prog/hs/devel/jhc/lib/Ratio.ho
Found dependency: Ratio at ~/prog/hs/devel/jhc/lib/Ratio.hs
Determining Exports/Imports: ["Foreign.C.Types"]
Typing: ["Foreign.C.Types"]
Kind inference
Type inference
0 declarations converted.
!
Functions culled: 0
Writing haskell object file: ~/prog/hs/devel/jhc/lib/Foreign/C/Types.ho
Determining Exports/Imports: ["Data.Word"]
Typing: ["Data.Word"]
Kind inference
Type inference
0 declarations converted.
!
Functions culled: 0
Writing haskell object file: ~/prog/hs/devel/jhc/lib/Data/Word.ho
Determining Exports/Imports: ["Char","Numeric","Prelude","Jhc.IO","Prelude.IOError","Jhc.Tuples","Prelude.Float","Foreign.Marshal.Alloc","Foreign.Marshal.Utils","Foreign.Ptr","Foreign.Storable","Jhc.Addr","Maybe","Monad","Prelude.IO","Foreign.C.String","Foreign.Marshal.Array","Prelude.Text","Ratio"]
Typing: ["Char","Numeric","Prelude","Jhc.IO","Prelude.IOError","Jhc.Tuples","Prelude.Float","Foreign.Marshal.Alloc","Foreign.Marshal.Utils","Foreign.Ptr","Foreign.Storable","Jhc.Addr","Maybe","Monad","Prelude.IO","Foreign.C.String","Foreign.Marshal.Array","Prelude.Text","Ratio"]
Kind inference
Type inference
657 declarations converted.
...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................!
Functions culled: 0
Writing haskell object file: ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Numeric.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Prelude.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Jhc.IO.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Prelude.IOError.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Jhc.Tuples.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Prelude.Float.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Foreign/Marshal/Alloc.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Foreign/Marshal/Utils.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Foreign/Ptr.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Foreign/Storable.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Jhc.Addr.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Maybe.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Monad.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Prelude.IO.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Foreign/C/String.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Foreign/Marshal/Array.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Prelude.Text.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Linking haskell object file: ~/prog/hs/devel/jhc/lib/Ratio.ho to ~/prog/hs/devel/jhc/lib/Char.ho
Determining Exports/Imports: ["Main"]
Typing: ["Main"]
Kind inference
Type inference
1 declarations converted.
.!
Functions culled: 0
Writing haskell object file: Try-Hello.ho
-- Barendregt
E
├╴case: 19
├╴case-alt: 107
├╴error: 7
├╴lambda: 158
├╴let-binding: 142
├╴lit: 190
├╴other: 125
├╴pi: 15
├╴prim: 70
╰╴var-use: 361
-- SuperSimplify
Type Error...

>>>Before SuperSimplify
E
├╴case: 19
├╴case-alt: 107
├╴error: 7
├╴lambda: 158
├╴let-binding: 142
├╴lit: 190
├╴other: 125
├╴pi: 15
├╴prim: 70
╰╴var-use: 361
let
    Instance@.iPrelude.toInteger.Foreign.C.Types.CWintForeign.C.Types.CWintPrelude.Integer =
        λx6Foreign.C.Types.CWint.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Foreign.C.Types.CWintPrelude.IntegerForeign.C.Types.CWint =
        λx12Prelude.Integer.∷Foreign.C.Types.CWint>;
    Instance@.iPrelude.fromInt.Foreign.C.Types.CWintPrelude.IntForeign.C.Types.CWint =
        λx18Prelude.Int.∷Foreign.C.Types.CWint>;
    Instance@.iPrelude.toInteger.Foreign.C.Types.CWcharForeign.C.Types.CWcharPrelude.Integer =
        λx24Foreign.C.Types.CWchar.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Foreign.C.Types.CWcharPrelude.IntegerForeign.C.Types.CWchar =
        λx30Prelude.Integer.∷Foreign.C.Types.CWchar>;
    Instance@.iPrelude.fromInt.Foreign.C.Types.CWcharPrelude.IntForeign.C.Types.CWchar =
        λx36Prelude.Int.∷Foreign.C.Types.CWchar>;
    Instance@.iPrelude.toInteger.Foreign.C.Types.CSizeForeign.C.Types.CSizePrelude.Integer =
        λx42Foreign.C.Types.CSize.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Foreign.C.Types.CSizePrelude.IntegerForeign.C.Types.CSize =
        λx48Prelude.Integer.∷Foreign.C.Types.CSize>;
    Instance@.iPrelude.fromInt.Foreign.C.Types.CSizePrelude.IntForeign.C.Types.CSize =
        λx54Prelude.Int.∷Foreign.C.Types.CSize>;
    Instance@.iPrelude.toInteger.Foreign.C.Types.CUIntForeign.C.Types.CUIntPrelude.Integer =
        λx60Foreign.C.Types.CUInt.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Foreign.C.Types.CUIntPrelude.IntegerForeign.C.Types.CUInt =
        λx66Prelude.Integer.∷Foreign.C.Types.CUInt>;
    Instance@.iPrelude.fromInt.Foreign.C.Types.CUIntPrelude.IntForeign.C.Types.CUInt =
        λx72Prelude.Int.∷Foreign.C.Types.CUInt>;
    Instance@.iPrelude.toInteger.Foreign.C.Types.CIntForeign.C.Types.CIntPrelude.Integer =
        λx78Foreign.C.Types.CInt.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Foreign.C.Types.CIntPrelude.IntegerForeign.C.Types.CInt =
        λx84Prelude.Integer.∷Foreign.C.Types.CInt>;
    Instance@.iPrelude.fromInt.Foreign.C.Types.CIntPrelude.IntForeign.C.Types.CInt =
        λx90Prelude.Int.∷Foreign.C.Types.CInt>;
    Instance@.iPrelude.toInteger.Foreign.C.Types.CShortForeign.C.Types.CShortPrelude.Integer =
        λx96Foreign.C.Types.CShort.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Foreign.C.Types.CShortPrelude.IntegerForeign.C.Types.CShort =
        λx102Prelude.Integer.∷Foreign.C.Types.CShort>;
    Instance@.iPrelude.fromInt.Foreign.C.Types.CShortPrelude.IntForeign.C.Types.CShort =
        λx108Prelude.Int.∷Foreign.C.Types.CShort>;
    Instance@.iPrelude.toInteger.Foreign.C.Types.CCharForeign.C.Types.CCharPrelude.Integer =
        λx114Foreign.C.Types.CChar.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Foreign.C.Types.CCharPrelude.IntegerForeign.C.Types.CChar =
        λx120Prelude.Integer.∷Foreign.C.Types.CChar>;
    Instance@.iPrelude.fromInt.Foreign.C.Types.CCharPrelude.IntForeign.C.Types.CChar =
        λx126Prelude.Int.∷Foreign.C.Types.CChar>;
    Instance@.iPrelude.fromInteger.Prelude.DoublePrelude.IntegerPrelude.Double =
        λx132Prelude.Integer.∷Prelude.Double>;
    Instance@.iPrelude.fromInt.Prelude.DoublePrelude.IntPrelude.Double =
        λx138Prelude.Int.∷Prelude.Double>;
    Instance@.iPrelude.fromInteger.Prelude.FloatPrelude.IntegerPrelude.Float =
        λx144Prelude.Integer.∷Prelude.Float>;
    Instance@.iPrelude.fromInt.Prelude.FloatPrelude.IntPrelude.Float =
        λx150Prelude.Int.∷Prelude.Float>;
    Instance@.iPrelude.toInteger.Data.Word.WordPtrData.Word.WordPtrPrelude.Integer =
        λx156Data.Word.WordPtr.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Data.Word.WordPtrPrelude.IntegerData.Word.WordPtr =
        λx162Prelude.Integer.∷Data.Word.WordPtr>;
    Instance@.iPrelude.fromInt.Data.Word.WordPtrPrelude.IntData.Word.WordPtr =
        λx168Prelude.Int.∷Data.Word.WordPtr>;
    Instance@.iPrelude.toInteger.Data.Word.WordMaxData.Word.WordMaxPrelude.Integer =
        λx174Data.Word.WordMax.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Data.Word.WordMaxPrelude.IntegerData.Word.WordMax =
        λx180Prelude.Integer.∷Data.Word.WordMax>;
    Instance@.iPrelude.fromInt.Data.Word.WordMaxPrelude.IntData.Word.WordMax =
        λx186Prelude.Int.∷Data.Word.WordMax>;
    Instance@.iPrelude.toInteger.Data.Word.Word64Data.Word.Word64Prelude.Integer =
        λx192Data.Word.Word64.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Data.Word.Word64Prelude.IntegerData.Word.Word64 =
        λx198Prelude.Integer.∷Data.Word.Word64>;
    Instance@.iPrelude.fromInt.Data.Word.Word64Prelude.IntData.Word.Word64 =
        λx204Prelude.Int.∷Data.Word.Word64>;
    Instance@.iPrelude.toInteger.Data.Word.Word32Data.Word.Word32Prelude.Integer =
        λx210Data.Word.Word32.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Data.Word.Word32Prelude.IntegerData.Word.Word32 =
        λx216Prelude.Integer.∷Data.Word.Word32>;
    Instance@.iPrelude.fromInt.Data.Word.Word32Prelude.IntData.Word.Word32 =
        λx222Prelude.Int.∷Data.Word.Word32>;
    Instance@.iPrelude.toInteger.Data.Word.Word16Data.Word.Word16Prelude.Integer =
        λx228Data.Word.Word16.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Data.Word.Word16Prelude.IntegerData.Word.Word16 =
        λx234Prelude.Integer.∷Data.Word.Word16>;
    Instance@.iPrelude.fromInt.Data.Word.Word16Prelude.IntData.Word.Word16 =
        λx240Prelude.Int.∷Data.Word.Word16>;
    Instance@.iPrelude.toInteger.Data.Word.Word8Data.Word.Word8Prelude.Integer =
        λx246Data.Word.Word8.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Data.Word.Word8Prelude.IntegerData.Word.Word8 =
        λx252Prelude.Integer.∷Data.Word.Word8>;
    Instance@.iPrelude.fromInt.Data.Word.Word8Prelude.IntData.Word.Word8 =
        λx258Prelude.Int.∷Data.Word.Word8>;
    Instance@.iPrelude.toInteger.Data.Word.WordData.Word.WordPrelude.Integer =
        λx264Data.Word.Word.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Data.Word.WordPrelude.IntegerData.Word.Word =
        λx270Prelude.Integer.∷Data.Word.Word>;
    Instance@.iPrelude.fromInt.Data.Word.WordPrelude.IntData.Word.Word =
        λx276Prelude.Int.∷Data.Word.Word>;
    Instance@.iPrelude.toInteger.Data.Int.IntPtrData.Int.IntPtrPrelude.Integer =
        λx282Data.Int.IntPtr.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Data.Int.IntPtrPrelude.IntegerData.Int.IntPtr =
        λx288Prelude.Integer.∷Data.Int.IntPtr>;
    Instance@.iPrelude.fromInt.Data.Int.IntPtrPrelude.IntData.Int.IntPtr =
        λx294Prelude.Int.∷Data.Int.IntPtr>;
    Instance@.iPrelude.toInteger.Data.Int.IntMaxData.Int.IntMaxPrelude.Integer =
        λx300Data.Int.IntMax.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Data.Int.IntMaxPrelude.IntegerData.Int.IntMax =
        λx306Prelude.Integer.∷Data.Int.IntMax>;
    Instance@.iPrelude.fromInt.Data.Int.IntMaxPrelude.IntData.Int.IntMax =
        λx312Prelude.Int.∷Data.Int.IntMax>;
    Instance@.iPrelude.toInteger.Data.Int.Int64Data.Int.Int64Prelude.Integer =
        λx318Data.Int.Int64.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Data.Int.Int64Prelude.IntegerData.Int.Int64 =
        λx324Prelude.Integer.∷Data.Int.Int64>;
    Instance@.iPrelude.fromInt.Data.Int.Int64Prelude.IntData.Int.Int64 =
        λx330Prelude.Int.∷Data.Int.Int64>;
    Instance@.iPrelude.toInteger.Data.Int.Int32Data.Int.Int32Prelude.Integer =
        λx336Data.Int.Int32.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Data.Int.Int32Prelude.IntegerData.Int.Int32 =
        λx342Prelude.Integer.∷Data.Int.Int32>;
    Instance@.iPrelude.fromInt.Data.Int.Int32Prelude.IntData.Int.Int32 =
        λx348Prelude.Int.∷Data.Int.Int32>;
    Instance@.iPrelude.toInteger.Data.Int.Int16Data.Int.Int16Prelude.Integer =
        λx354Data.Int.Int16.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Data.Int.Int16Prelude.IntegerData.Int.Int16 =
        λx360Prelude.Integer.∷Data.Int.Int16>;
    Instance@.iPrelude.fromInt.Data.Int.Int16Prelude.IntData.Int.Int16 =
        λx366Prelude.Int.∷Data.Int.Int16>;
    Instance@.iPrelude.toInteger.Data.Int.Int8Data.Int.Int8Prelude.Integer =
        λx372Data.Int.Int8.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Data.Int.Int8Prelude.IntegerData.Int.Int8 =
        λx378Prelude.Integer.∷Data.Int.Int8>;
    Instance@.iPrelude.fromInt.Data.Int.Int8Prelude.IntData.Int.Int8 =
        λx384Prelude.Int.∷Data.Int.Int8>;
    Instance@.iPrelude.toInteger.Prelude.IntegerPrelude.IntegerPrelude.Integer =
        λx390Prelude.Integer.x390;
    Instance@.iPrelude.fromInteger.Prelude.IntegerPrelude.IntegerPrelude.Integer =
        λx396Prelude.Integer.x396;
    Instance@.iPrelude.fromInt.Prelude.IntegerPrelude.IntPrelude.Integer =
        λx402Prelude.Int.∷Prelude.Integer>;
    Instance@.iPrelude.toInteger.Prelude.IntPrelude.IntPrelude.Integer =
        λx408Prelude.Int.∷Prelude.Integer>;
    Instance@.iPrelude.fromInteger.Prelude.IntPrelude.IntegerPrelude.Int =
        λx414Prelude.Integer.∷Prelude.Int>;
    Instance@.iPrelude.fromInt.Prelude.IntPrelude.IntPrelude.Int =
        λx420Prelude.Int.x420;
    Instance@.iPrelude.return.Prelude.[]Char.v1470.Char.v1470[Char.v1470] =
        Λx426.λPrelude.878_xx426.[Prelude.878_x];
    Instance@.iPrelude.return.Prelude.MaybeChar.v1472.Char.v1472Prelude.Maybe Char.v1472 =
        Λx434.λPrelude.867_xx434.Prelude.Just Prelude.867_x;
    Instance@.iPrelude.return.Jhc.IO.IOChar.v1475.Char.v1475Jhc.IO.IO Char.v1475 =
        Λx442.λJhc.IO.37_xx442.λx446Jhc.IO.World__.Jhc.IO.JustIO x446 Jhc.IO.37_x;
    Instance@.iPrelude.>>=.Prelude.MaybeChar.v2517.Char.v2516.Prelude.Maybe Char.v2517(Char.v2517Prelude.Maybe Char.v2516)Prelude.Maybe Char.v2516 =
        Λx454.Λx456.λx458Prelude.Maybe x454.λx460x454Prelude.Maybe x456.(case x458 of
            Prelude.Just (x462x454) →
                x460 x462;
            Prelude.Nothing →
                Prelude.Nothing;);
    Instance@.iPrelude.>>=.Jhc.IO.IOChar.v2543.Char.v2526.Jhc.IO.IO Char.v2543(Char.v2543Jhc.IO.IO Char.v2526)Jhc.IO.IO Char.v2526 =
        Λx470.Λx472.λx474Jhc.IO.IO x470.λx476x470Jhc.IO.IO x472.λx32Jhc.IO.World__.(case x474 x32 of
            Jhc.IO.FailIO (x480Jhc.IO.World__) (x26Prelude.IOError.IOError) →
                Jhc.IO.FailIO x480 x26;
            Jhc.IO.JustIO (x484Jhc.IO.World__) (x486x470) →
                x476 x486 x484;);
    Instance@.iPrelude.>>.Jhc.IO.IOChar.v2567.Char.v2554.Jhc.IO.IO Char.v2567Jhc.IO.IO Char.v2554Jhc.IO.IO Char.v2554 =
        Λx494.Λx496.λx498Jhc.IO.IO x494.λx500Jhc.IO.IO x496.λx502Jhc.IO.World__.(case x498 x502 of
            Jhc.IO.FailIO (x504Jhc.IO.World__) (x506Prelude.IOError.IOError) →
                Jhc.IO.FailIO x504 x506;
            Jhc.IO.JustIO (x508Jhc.IO.World__) (x38x494) →
                x500 x508;);
    Prelude.IO.c_putwcharForeign.C.Types.CWcharJhc.IO.IO Prelude.() =
        λx4Foreign.C.Types.CWchar.(case x4 of
            Foreign.C.Types.CWchar (x516wchar_t) →
                λx518Jhc.IO.World__.(case <(void)putwchar(wchar_t) x518 x516Jhc.IO.World__> of
                    x520Jhc.IO.World__ → Jhc.IO.JustIO x520 Prelude.();););
    Prelude.IO.catchChar.v1032.Jhc.IO.IO Char.v1032(Prelude.IOError.IOErrorJhc.IO.IO Char.v1032)Jhc.IO.IO Char.v1032 =
        Λx526.λx528Jhc.IO.IO x526.λx530Prelude.IOError.IOErrorJhc.IO.IO x526.λx532Jhc.IO.World__.(case x528 x532 of
            Jhc.IO.FailIO (x534Jhc.IO.World__) (x20Prelude.IOError.IOError) →
                x530 x20 x534;
            Jhc.IO.JustIO (x538Jhc.IO.World__) (x540x526) →
                Jhc.IO.JustIO x538 x540;);
    Prelude.foldrChar.v297.Char.v302.(Char.v297Char.v302Char.v302)Char.v302[Char.v297]Char.v302 =
        Λx548.Λx550.λPrelude.1245_kx548x550x550.λPrelude.1246_zx550.λPrelude.1247_xs[x548].(let
            Prelude.1248_go[x548]x550 =
                λx560[x548].(case x560 of
                    (x562x548):(x564[x548]) → let
                            x566x550 =
                                Prelude.1248_go x564;
                            in Prelude.1245_k x562 x566;
                    Prelude.[] → Prelude.1246_z;);
            in Prelude.1248_go Prelude.1247_xs);
    Prelude.++Char.v756.[Char.v756][Char.v756][Char.v756] =
        Λx572.λx574[x572].λx576[x572].(case x574 of
            (x578x572):(x580[x572]) → let
                    x582[x572] =
                        Prelude.++ x572 x580 x576;
                    in x578:x582;
            Prelude.[] → x576;);
    Prelude.mapChar.v251.Char.v256.(Char.v251Char.v256)[Char.v251][Char.v256] =
        Λx590.Λx592.λPrelude.1058_fx590x592.λPrelude.1059_xs[x590].(let
            Prelude.1060_go[x590][x592] =
                λx600[x590].(case x600 of
                    (x602x590):(x604[x590]) → let
                            x606[x592] =
                                Prelude.1060_go x604;
                            x608x592 = Prelude.1058_f x602;
                            in x608:x606;
                    Prelude.[] → "";);
            in Prelude.1060_go Prelude.1059_xs);
    Prelude..Char.v593.Char.v594.Char.v592.(Char.v593Char.v594)(Char.v592Char.v593)Char.v592Char.v594 =
        Λx618.Λx620.Λx622.λPrelude.987_fx618x620.λPrelude.988_gx622x618.λPrelude.989_xx622.(let
            x14x618 =
                Prelude.988_g Prelude.989_x;
            in Prelude.987_f x14);
    Prelude.concatMapChar.v769.Char.v771.(Char.v769[Char.v771])[Char.v769][Char.v771] =
        Λx638.Λx640.λPrelude.1107_fx638[x640].(let
            x644 = [x640];
            x646[x640][x640][x640] =
                Prelude.++ x640;
            x648 = [x640][x640];
            x650 = [x640];
            x652x638[x640][x640] =
                Prelude.. x650 x648 x638 x646 Prelude.1107_f;
            in Prelude.foldr x638 x644 x652 "");
    Instance@.iPrelude.>>=.Prelude.[]Char.v2509.Char.v2510.[Char.v2509](Char.v2509[Char.v2510])[Char.v2510] =
        Λx660.Λx662.λPrelude.881_xs[x660].λPrelude.882_fx660[x662].Prelude.concatMap x660 x662 Prelude.882_f Prelude.881_xs;
    Prelude.returnΠChar.v41.Char.v42.Char.v42Char.v41 Char.v42 =
        λx674.(case x674 of
            Jhc.IO.IO →
                Instance@.iPrelude.return.Jhc.IO.IO;
            Prelude.Maybe →
                Instance@.iPrelude.return.Prelude.Maybe;
            Prelude.[] →
                Instance@.iPrelude.return.Prelude.[];
            _ → <⊥:Bad: Prelude.return∷x676.x676x674 x676>;);
    Prelude.>>=ΠChar.v7.Char.v8.Char.v9.Char.v7 Char.v8(Char.v8Char.v7 Char.v9)Char.v7 Char.v9 =
        λx686.(case x686 of
            Jhc.IO.IO →
                Instance@.iPrelude.>>=.Jhc.IO.IO;
            Prelude.Maybe →
                Instance@.iPrelude.>>=.Prelude.Maybe;
            Prelude.[] →
                Instance@.iPrelude.>>=.Prelude.[];
            _ → <⊥:Bad: Prelude.>>=∷x688.x690.x686 x688(x688x686 x690)x686 x690>;);
    Instance@.iPrelude.>>.defaultΠChar.v3370.Char.v3371.Char.v3372.Char.v3370 Char.v3371Char.v3370 Char.v3372Char.v3370 Char.v3372 =
        λx700.Λx702.Λx704.λPrelude.803_mx700 x702.λPrelude.804_kx700 x704.(let
            x710x702x700 x704 =
                λx714x702.Prelude.804_k;
            in Prelude.>>= x700 x702 x704 Prelude.803_m x710);
    Prelude.>>Πx718.x720.x722.x718 x720x718 x722x718 x722 =
        λx724.(case x724 of
            Jhc.IO.IO →
                Instance@.iPrelude.>>.Jhc.IO.IO;
            Prelude.Maybe → let x726 =
                                    Prelude.Maybe;
                    in Instance@.iPrelude.>>.default x726;
            Prelude.[] → let x728 =
                                 Prelude.[];
                    in Instance@.iPrelude.>>.default x728;
            _ → <⊥:Bad: Prelude.>>∷x730.x732.x724 x730x724 x732x724 x732>;);
    Prelude.sequence_ΠChar.v3360.Char.v3361.[Char.v3360 Char.v3361]Char.v3360 Prelude.() =
        λx740.Λx742.(let
            x744x740 Prelude.() =
                Prelude.return x740 Prelude.() Prelude.();
            x746x740 x742x740 Prelude.()x740 Prelude.() =
                Prelude.>> x740 x742 Prelude.();
            x748 = x740 Prelude.();
            x750 = x740 x742;
            in Prelude.foldr x750 x748 x746 x744);
    Prelude.mapM_ΠChar.v3351.Char.v3353.Char.v3352.(Char.v3353Char.v3351 Char.v3352)[Char.v3353]Char.v3351 Prelude.() =
        λx760.Λx762.Λx764.λPrelude.853_fx762x760 x764.λPrelude.854_as[x762].(let
            x770 = x760 x764;
            x772[x760 x764] =
                Prelude.map x762 x770 Prelude.853_f Prelude.854_as;
            in Prelude.sequence_ x760 x764 x772);
    Prelude.toIntegerChar.v147.Char.v147Prelude.Integer =
        Λx778.(case x778 of
            Data.Int.Int16 →
                Instance@.iPrelude.toInteger.Data.Int.Int16;
            Data.Int.Int32 →
                Instance@.iPrelude.toInteger.Data.Int.Int32;
            Data.Int.Int64 →
                Instance@.iPrelude.toInteger.Data.Int.Int64;
            Data.Int.Int8 →
                Instance@.iPrelude.toInteger.Data.Int.Int8;
            Data.Int.IntMax →
                Instance@.iPrelude.toInteger.Data.Int.IntMax;
            Data.Int.IntPtr →
                Instance@.iPrelude.toInteger.Data.Int.IntPtr;
            Data.Word.Word →
                Instance@.iPrelude.toInteger.Data.Word.Word;
            Data.Word.Word16 →
                Instance@.iPrelude.toInteger.Data.Word.Word16;
            Data.Word.Word32 →
                Instance@.iPrelude.toInteger.Data.Word.Word32;
            Data.Word.Word64 →
                Instance@.iPrelude.toInteger.Data.Word.Word64;
            Data.Word.Word8 →
                Instance@.iPrelude.toInteger.Data.Word.Word8;
            Data.Word.WordMax →
                Instance@.iPrelude.toInteger.Data.Word.WordMax;
            Data.Word.WordPtr →
                Instance@.iPrelude.toInteger.Data.Word.WordPtr;
            Foreign.C.Types.CChar →
                Instance@.iPrelude.toInteger.Foreign.C.Types.CChar;
            Foreign.C.Types.CInt →
                Instance@.iPrelude.toInteger.Foreign.C.Types.CInt;
            Foreign.C.Types.CShort →
                Instance@.iPrelude.toInteger.Foreign.C.Types.CShort;
            Foreign.C.Types.CSize →
                Instance@.iPrelude.toInteger.Foreign.C.Types.CSize;
            Foreign.C.Types.CUInt →
                Instance@.iPrelude.toInteger.Foreign.C.Types.CUInt;
            Foreign.C.Types.CWchar →
                Instance@.iPrelude.toInteger.Foreign.C.Types.CWchar;
            Foreign.C.Types.CWint →
                Instance@.iPrelude.toInteger.Foreign.C.Types.CWint;
            Prelude.Int →
                Instance@.iPrelude.toInteger.Prelude.Int;
            Prelude.Integer →
                Instance@.iPrelude.toInteger.Prelude.Integer;
            _ → <⊥:Bad: Prelude.toInteger∷x778Prelude.Integer>;);
    Prelude.fromIntegerChar.v279.Prelude.IntegerChar.v279 =
        Λx796.(case x796 of
            Data.Int.Int16 →
                Instance@.iPrelude.fromInteger.Data.Int.Int16;
            Data.Int.Int32 →
                Instance@.iPrelude.fromInteger.Data.Int.Int32;
            Data.Int.Int64 →
                Instance@.iPrelude.fromInteger.Data.Int.Int64;
            Data.Int.Int8 →
                Instance@.iPrelude.fromInteger.Data.Int.Int8;
            Data.Int.IntMax →
                Instance@.iPrelude.fromInteger.Data.Int.IntMax;
            Data.Int.IntPtr →
                Instance@.iPrelude.fromInteger.Data.Int.IntPtr;
            Data.Word.Word →
                Instance@.iPrelude.fromInteger.Data.Word.Word;
            Data.Word.Word16 →
                Instance@.iPrelude.fromInteger.Data.Word.Word16;
            Data.Word.Word32 →
                Instance@.iPrelude.fromInteger.Data.Word.Word32;
            Data.Word.Word64 →
                Instance@.iPrelude.fromInteger.Data.Word.Word64;
            Data.Word.Word8 →
                Instance@.iPrelude.fromInteger.Data.Word.Word8;
            Data.Word.WordMax →
                Instance@.iPrelude.fromInteger.Data.Word.WordMax;
            Data.Word.WordPtr →
                Instance@.iPrelude.fromInteger.Data.Word.WordPtr;
            Foreign.C.Types.CChar →
                Instance@.iPrelude.fromInteger.Foreign.C.Types.CChar;
            Foreign.C.Types.CInt →
                Instance@.iPrelude.fromInteger.Foreign.C.Types.CInt;
            Foreign.C.Types.CShort →
                Instance@.iPrelude.fromInteger.Foreign.C.Types.CShort;
            Foreign.C.Types.CSize →
                Instance@.iPrelude.fromInteger.Foreign.C.Types.CSize;
            Foreign.C.Types.CUInt →
                Instance@.iPrelude.fromInteger.Foreign.C.Types.CUInt;
            Foreign.C.Types.CWchar →
                Instance@.iPrelude.fromInteger.Foreign.C.Types.CWchar;
            Foreign.C.Types.CWint →
                Instance@.iPrelude.fromInteger.Foreign.C.Types.CWint;
            Prelude.Double →
                Instance@.iPrelude.fromInteger.Prelude.Double;
            Prelude.Float →
                Instance@.iPrelude.fromInteger.Prelude.Float;
            Prelude.Int →
                Instance@.iPrelude.fromInteger.Prelude.Int;
            Prelude.Integer →
                Instance@.iPrelude.fromInteger.Prelude.Integer;
            Ratio.Ratio (Ratio.74_a) →
                Instance@.iPrelude.fromInteger.Ratio.Ratio Ratio.74_a;
            _ → <⊥:Bad: Prelude.fromInteger∷Prelude.Integerx796>;);
    Instance@.iPrelude.fromInteger.Ratio.RatioChar.v1598.Prelude.IntegerRatio.Ratio Char.v1598 =
        Λx800.λRatio.118_xPrelude.Integer.(let
            x804x800 =
                Prelude.fromInt x800 (Prelude.Int 1);
            x806x800 =
                Prelude.fromInteger x800 Ratio.118_x;
            in Ratio.:% x806 x804);
    Prelude.fromIntChar.v274.Prelude.IntChar.v274 =
        Λx808.(case x808 of
            Data.Int.Int16 →
                Instance@.iPrelude.fromInt.Data.Int.Int16;
            Data.Int.Int32 →
                Instance@.iPrelude.fromInt.Data.Int.Int32;
            Data.Int.Int64 →
                Instance@.iPrelude.fromInt.Data.Int.Int64;
            Data.Int.Int8 →
                Instance@.iPrelude.fromInt.Data.Int.Int8;
            Data.Int.IntMax →
                Instance@.iPrelude.fromInt.Data.Int.IntMax;
            Data.Int.IntPtr →
                Instance@.iPrelude.fromInt.Data.Int.IntPtr;
            Data.Word.Word →
                Instance@.iPrelude.fromInt.Data.Word.Word;
            Data.Word.Word16 →
                Instance@.iPrelude.fromInt.Data.Word.Word16;
            Data.Word.Word32 →
                Instance@.iPrelude.fromInt.Data.Word.Word32;
            Data.Word.Word64 →
                Instance@.iPrelude.fromInt.Data.Word.Word64;
            Data.Word.Word8 →
                Instance@.iPrelude.fromInt.Data.Word.Word8;
            Data.Word.WordMax →
                Instance@.iPrelude.fromInt.Data.Word.WordMax;
            Data.Word.WordPtr →
                Instance@.iPrelude.fromInt.Data.Word.WordPtr;
            Foreign.C.Types.CChar →
                Instance@.iPrelude.fromInt.Foreign.C.Types.CChar;
            Foreign.C.Types.CInt →
                Instance@.iPrelude.fromInt.Foreign.C.Types.CInt;
            Foreign.C.Types.CShort →
                Instance@.iPrelude.fromInt.Foreign.C.Types.CShort;
            Foreign.C.Types.CSize →
                Instance@.iPrelude.fromInt.Foreign.C.Types.CSize;
            Foreign.C.Types.CUInt →
                Instance@.iPrelude.fromInt.Foreign.C.Types.CUInt;
            Foreign.C.Types.CWchar →
                Instance@.iPrelude.fromInt.Foreign.C.Types.CWchar;
            Foreign.C.Types.CWint →
                Instance@.iPrelude.fromInt.Foreign.C.Types.CWint;
            Prelude.Double →
                Instance@.iPrelude.fromInt.Prelude.Double;
            Prelude.Float →
                Instance@.iPrelude.fromInt.Prelude.Float;
            Prelude.Int →
                Instance@.iPrelude.fromInt.Prelude.Int;
            Prelude.Integer →
                Instance@.iPrelude.fromInt.Prelude.Integer;
            Ratio.Ratio (x810) → let
                    x812 = Ratio.Ratio x810;
                    in Instance@.iPrelude.fromInt.default x812;
            _ → <⊥:Bad: Prelude.fromInt∷Prelude.Intx808>;);
    Instance@.iPrelude.fromInt.defaultx794.Prelude.Intx794 =
        Λx814.λPrelude.127_iPrelude.Int.(let
            x8Prelude.Integer =
                case Prelude.127_i of
                    Prelude.Int (x820int) →
                        case <(intmax_t) x820intmax_t> of
                            x822intmax_t → Prelude.Integer x822;;;
            in Prelude.fromInteger x814 x8);
    Prelude.fromIntegralChar.v614.Char.v613.Char.v614Char.v613 =
        Λx830.Λx832.(let
            x834x830Prelude.Integer =
                Prelude.toInteger x830;
            x836Prelude.Integerx832 =
                Prelude.fromInteger x832;
            in Prelude.. Prelude.Integer x832 x830 x836 x834);
    Char.ordPrelude.CharPrelude.Int =
        λx840Prelude.Char.(case x840 of
            Prelude.Char (x842uint32_t) →
                case <(int) x842int> of
                    x844int → Prelude.Int x844;;);
    Prelude.IO.putCharPrelude.CharJhc.IO.IO Prelude.() =
        λPrelude.IO.183_cPrelude.Char.(let
            x850Prelude.Int =
                Char.ord Prelude.IO.183_c;
            x852Foreign.C.Types.CWchar =
                Prelude.fromIntegral Prelude.Int Foreign.C.Types.CWchar x850;
            in Prelude.IO.c_putwchar x852);
    Prelude.IO.putStr[Prelude.Char]Jhc.IO.IO Prelude.() =
        λPrelude.IO.51_s[Prelude.Char].Prelude.mapM_ Jhc.IO.IO Prelude.Char Prelude.() Prelude.IO.putChar Prelude.IO.51_s;
    Prelude.IO.putStrLn[Prelude.Char]Jhc.IO.IO Prelude.() =
        λPrelude.IO.55_s[Prelude.Char].(let
            x862Jhc.IO.IO Prelude.() =
                Prelude.IO.putStr "\n";
            x864Jhc.IO.IO Prelude.() =
                Prelude.IO.putStr Prelude.IO.55_s;
            in Instance@.iPrelude.>>.Jhc.IO.IO Prelude.() Prelude.() x864 x862);
    Prelude.IO.runMainChar.v6452.Jhc.IO.IO Char.v6452Jhc.IO.IO Prelude.() =
        Λx870.λPrelude.IO.2_mainJhc.IO.IO x870.(let
            x874Jhc.IO.IO Prelude.() =
                λx876Jhc.IO.World__.Jhc.IO.JustIO x876 Prelude.();
            x878Prelude.IOError.IOErrorJhc.IO.IO x870 =
                λx882Prelude.IOError.IOError.(let
                    x884Jhc.IO.IO Prelude.() =
                        Prelude.IO.putStr "\nError..\n";
                    x886Jhc.IO.IO Prelude.() =
                        Prelude.IO.putStrLn x882;
                    x888x870 =
                        <⊥:Prelude.error: runMain∷x870>;
                    x890Jhc.IO.IO x870 =
                        λx892Jhc.IO.World__.Jhc.IO.JustIO x892 x888;
                    x894Jhc.IO.IO x870 =
                        Instance@.iPrelude.>>.Jhc.IO.IO Prelude.() x870 x886 x890;
                    in Instance@.iPrelude.>>.Jhc.IO.IO Prelude.() x870 x884 x894);
            x896Jhc.IO.IO x870 =
                Prelude.IO.catch x870 Prelude.IO.2_main x878;
            in Instance@.iPrelude.>>.Jhc.IO.IO x870 Prelude.() x896 x874);
    Main.mainJhc.IO.IO Prelude.() =
        Prelude.IO.putStrLn "Hello, World!";
    theMainJhc.IO.IO Prelude.() =
        Prelude.IO.runMain Prelude.() Main.main;
    in theMain
>>>After SuperSimplify
E
├╴case: 163
├╴case-alt: 291
├╴error: 13
├╴lambda: 170
├╴let-binding: 166
├╴lit: 309
├╴other: 151
├╴pi: 20
├╴prim: 69
╰╴var-use: 576
let
    Instance@.iPrelude.toInteger.Foreign.C.Types.CWintForeign.C.Types.CWintPrelude.Integer =
        λx6Foreign.C.Types.CWint.(case x6 of
            Foreign.C.Types.CWint (x4wint_t) →
                case <(intmax_t) x4intmax_t> of
                    x8intmax_t → Prelude.Integer x8;;);
    Instance@.iPrelude.fromInteger.Foreign.C.Types.CWintPrelude.IntegerForeign.C.Types.CWint =
        λx12Prelude.Integer.(case x12 of
            Prelude.Integer (x4intmax_t) →
                case <(wint_t) x4wint_t> of
                    x6wint_t → Foreign.C.Types.CWint x6;;);
    Instance@.iPrelude.fromInt.Foreign.C.Types.CWintPrelude.IntForeign.C.Types.CWint =
        λx18Prelude.Int.(case x18 of
            Prelude.Int (x4int) →
                case <(wint_t) x4wint_t> of
                    x6wint_t → Foreign.C.Types.CWint x6;;);
    Instance@.iPrelude.toInteger.Foreign.C.Types.CWcharForeign.C.Types.CWcharPrelude.Integer =
        λx24Foreign.C.Types.CWchar.(case x24 of
            Foreign.C.Types.CWchar (x4wchar_t) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Foreign.C.Types.CWcharPrelude.IntegerForeign.C.Types.CWchar =
        λx30Prelude.Integer.(case x30 of
            Prelude.Integer (x4intmax_t) →
                case <(wchar_t) x4wchar_t> of
                    x6wchar_t → Foreign.C.Types.CWchar x6;;);
    Instance@.iPrelude.fromInt.Foreign.C.Types.CWcharPrelude.IntForeign.C.Types.CWchar =
        λx36Prelude.Int.(case x36 of
            Prelude.Int (x4int) →
                case <(wchar_t) x4wchar_t> of
                    x6wchar_t → Foreign.C.Types.CWchar x6;;);
    Instance@.iPrelude.toInteger.Foreign.C.Types.CSizeForeign.C.Types.CSizePrelude.Integer =
        λx42Foreign.C.Types.CSize.(case x42 of
            Foreign.C.Types.CSize (x4size_t) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Foreign.C.Types.CSizePrelude.IntegerForeign.C.Types.CSize =
        λx48Prelude.Integer.(case x48 of
            Prelude.Integer (x4intmax_t) →
                case <(size_t) x4size_t> of
                    x6size_t → Foreign.C.Types.CSize x6;;);
    Instance@.iPrelude.fromInt.Foreign.C.Types.CSizePrelude.IntForeign.C.Types.CSize =
        λx54Prelude.Int.(case x54 of
            Prelude.Int (x4int) →
                case <(size_t) x4size_t> of
                    x6size_t → Foreign.C.Types.CSize x6;;);
    Instance@.iPrelude.toInteger.Foreign.C.Types.CUIntForeign.C.Types.CUIntPrelude.Integer =
        λx60Foreign.C.Types.CUInt.(case x60 of
            Foreign.C.Types.CUInt (x4unsigned int) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Foreign.C.Types.CUIntPrelude.IntegerForeign.C.Types.CUInt =
        λx66Prelude.Integer.(case x66 of
            Prelude.Integer (x4intmax_t) →
                case <(unsigned int) x4unsigned int> of
                    x6unsigned int → Foreign.C.Types.CUInt x6;;);
    Instance@.iPrelude.fromInt.Foreign.C.Types.CUIntPrelude.IntForeign.C.Types.CUInt =
        λx72Prelude.Int.(case x72 of
            Prelude.Int (x4int) →
                case <(unsigned int) x4unsigned int> of
                    x6unsigned int → Foreign.C.Types.CUInt x6;;);
    Instance@.iPrelude.toInteger.Foreign.C.Types.CIntForeign.C.Types.CIntPrelude.Integer =
        λx78Foreign.C.Types.CInt.(case x78 of
            Foreign.C.Types.CInt (x4int) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Foreign.C.Types.CIntPrelude.IntegerForeign.C.Types.CInt =
        λx84Prelude.Integer.(case x84 of
            Prelude.Integer (x4intmax_t) →
                case <(int) x4int> of
                    x6int → Foreign.C.Types.CInt x6;;);
    Instance@.iPrelude.fromInt.Foreign.C.Types.CIntPrelude.IntForeign.C.Types.CInt =
        λx90Prelude.Int.(case x90 of
            Prelude.Int (x4int) →
                Foreign.C.Types.CInt x4;);
    Instance@.iPrelude.toInteger.Foreign.C.Types.CShortForeign.C.Types.CShortPrelude.Integer =
        λx96Foreign.C.Types.CShort.(case x96 of
            Foreign.C.Types.CShort (x4short) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Foreign.C.Types.CShortPrelude.IntegerForeign.C.Types.CShort =
        λx102Prelude.Integer.(case x102 of
            Prelude.Integer (x4intmax_t) →
                case <(short) x4short> of
                    x6short → Foreign.C.Types.CShort x6;;);
    Instance@.iPrelude.fromInt.Foreign.C.Types.CShortPrelude.IntForeign.C.Types.CShort =
        λx108Prelude.Int.(case x108 of
            Prelude.Int (x4int) →
                case <(short) x4short> of
                    x6short → Foreign.C.Types.CShort x6;;);
    Instance@.iPrelude.toInteger.Foreign.C.Types.CCharForeign.C.Types.CCharPrelude.Integer =
        λx114Foreign.C.Types.CChar.(case x114 of
            Foreign.C.Types.CChar (x4char) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Foreign.C.Types.CCharPrelude.IntegerForeign.C.Types.CChar =
        λx120Prelude.Integer.(case x120 of
            Prelude.Integer (x4intmax_t) →
                case <(char) x4char> of
                    x6char → Foreign.C.Types.CChar x6;;);
    Instance@.iPrelude.fromInt.Foreign.C.Types.CCharPrelude.IntForeign.C.Types.CChar =
        λx126Prelude.Int.(case x126 of
            Prelude.Int (x4int) →
                case <(char) x4char> of
                    x6char → Foreign.C.Types.CChar x6;;);
    Instance@.iPrelude.fromInteger.Prelude.DoublePrelude.IntegerPrelude.Double =
        λx132Prelude.Integer.(case x132 of
            Prelude.Integer (x4intmax_t) →
                case <(double) x4double> of
                    x6double → Prelude.Double x6;;);
    Instance@.iPrelude.fromInt.Prelude.DoublePrelude.IntPrelude.Double =
        λx138Prelude.Int.(case x138 of
            Prelude.Int (x4int) →
                case <(double) x4double> of
                    x6double → Prelude.Double x6;;);
    Instance@.iPrelude.fromInteger.Prelude.FloatPrelude.IntegerPrelude.Float =
        λx144Prelude.Integer.(case x144 of
            Prelude.Integer (x4intmax_t) →
                case <(float) x4float> of
                    x6float → Prelude.Float x6;;);
    Instance@.iPrelude.fromInt.Prelude.FloatPrelude.IntPrelude.Float =
        λx150Prelude.Int.(case x150 of
            Prelude.Int (x4int) →
                case <(float) x4float> of
                    x6float → Prelude.Float x6;;);
    Instance@.iPrelude.toInteger.Data.Word.WordPtrData.Word.WordPtrPrelude.Integer =
        λx156Data.Word.WordPtr.(case x156 of
            Data.Word.WordPtr (x4uintptr_t) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Data.Word.WordPtrPrelude.IntegerData.Word.WordPtr =
        λx162Prelude.Integer.(case x162 of
            Prelude.Integer (x4intmax_t) →
                case <(uintptr_t) x4uintptr_t> of
                    x6uintptr_t → Data.Word.WordPtr x6;;);
    Instance@.iPrelude.fromInt.Data.Word.WordPtrPrelude.IntData.Word.WordPtr =
        λx168Prelude.Int.(case x168 of
            Prelude.Int (x4int) →
                case <(uintptr_t) x4uintptr_t> of
                    x6uintptr_t → Data.Word.WordPtr x6;;);
    Instance@.iPrelude.toInteger.Data.Word.WordMaxData.Word.WordMaxPrelude.Integer =
        λx174Data.Word.WordMax.(case x174 of
            Data.Word.WordMax (x4uintmax_t) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Data.Word.WordMaxPrelude.IntegerData.Word.WordMax =
        λx180Prelude.Integer.(case x180 of
            Prelude.Integer (x4intmax_t) →
                case <(uintmax_t) x4uintmax_t> of
                    x6uintmax_t → Data.Word.WordMax x6;;);
    Instance@.iPrelude.fromInt.Data.Word.WordMaxPrelude.IntData.Word.WordMax =
        λx186Prelude.Int.(case x186 of
            Prelude.Int (x4int) →
                case <(uintmax_t) x4uintmax_t> of
                    x6uintmax_t → Data.Word.WordMax x6;;);
    Instance@.iPrelude.toInteger.Data.Word.Word64Data.Word.Word64Prelude.Integer =
        λx192Data.Word.Word64.(case x192 of
            Data.Word.Word64 (x4uint64_t) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Data.Word.Word64Prelude.IntegerData.Word.Word64 =
        λx198Prelude.Integer.(case x198 of
            Prelude.Integer (x4intmax_t) →
                case <(uint64_t) x4uint64_t> of
                    x6uint64_t → Data.Word.Word64 x6;;);
    Instance@.iPrelude.fromInt.Data.Word.Word64Prelude.IntData.Word.Word64 =
        λx204Prelude.Int.(case x204 of
            Prelude.Int (x4int) →
                case <(uint64_t) x4uint64_t> of
                    x6uint64_t → Data.Word.Word64 x6;;);
    Instance@.iPrelude.toInteger.Data.Word.Word32Data.Word.Word32Prelude.Integer =
        λx210Data.Word.Word32.(case x210 of
            Data.Word.Word32 (x4uint32_t) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Data.Word.Word32Prelude.IntegerData.Word.Word32 =
        λx216Prelude.Integer.(case x216 of
            Prelude.Integer (x4intmax_t) →
                case <(uint32_t) x4uint32_t> of
                    x6uint32_t → Data.Word.Word32 x6;;);
    Instance@.iPrelude.fromInt.Data.Word.Word32Prelude.IntData.Word.Word32 =
        λx222Prelude.Int.(case x222 of
            Prelude.Int (x4int) →
                case <(uint32_t) x4uint32_t> of
                    x6uint32_t → Data.Word.Word32 x6;;);
    Instance@.iPrelude.toInteger.Data.Word.Word16Data.Word.Word16Prelude.Integer =
        λx228Data.Word.Word16.(case x228 of
            Data.Word.Word16 (x4uint16_t) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Data.Word.Word16Prelude.IntegerData.Word.Word16 =
        λx234Prelude.Integer.(case x234 of
            Prelude.Integer (x4intmax_t) →
                case <(uint16_t) x4uint16_t> of
                    x6uint16_t → Data.Word.Word16 x6;;);
    Instance@.iPrelude.fromInt.Data.Word.Word16Prelude.IntData.Word.Word16 =
        λx240Prelude.Int.(case x240 of
            Prelude.Int (x4int) →
                case <(uint16_t) x4uint16_t> of
                    x6uint16_t → Data.Word.Word16 x6;;);
    Instance@.iPrelude.toInteger.Data.Word.Word8Data.Word.Word8Prelude.Integer =
        λx246Data.Word.Word8.(case x246 of
            Data.Word.Word8 (x4uint8_t) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Data.Word.Word8Prelude.IntegerData.Word.Word8 =
        λx252Prelude.Integer.(case x252 of
            Prelude.Integer (x4intmax_t) →
                case <(uint8_t) x4uint8_t> of
                    x6uint8_t → Data.Word.Word8 x6;;);
    Instance@.iPrelude.fromInt.Data.Word.Word8Prelude.IntData.Word.Word8 =
        λx258Prelude.Int.(case x258 of
            Prelude.Int (x4int) →
                case <(uint8_t) x4uint8_t> of
                    x6uint8_t → Data.Word.Word8 x6;;);
    Instance@.iPrelude.toInteger.Data.Word.WordData.Word.WordPrelude.Integer =
        λx264Data.Word.Word.(case x264 of
            Data.Word.Word (x4unsigned int) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Data.Word.WordPrelude.IntegerData.Word.Word =
        λx270Prelude.Integer.(case x270 of
            Prelude.Integer (x4intmax_t) →
                case <(unsigned int) x4unsigned int> of
                    x6unsigned int → Data.Word.Word x6;;);
    Instance@.iPrelude.fromInt.Data.Word.WordPrelude.IntData.Word.Word =
        λx276Prelude.Int.(case x276 of
            Prelude.Int (x4int) →
                case <(unsigned int) x4unsigned int> of
                    x6unsigned int → Data.Word.Word x6;;);
    Instance@.iPrelude.toInteger.Data.Int.IntPtrData.Int.IntPtrPrelude.Integer =
        λx282Data.Int.IntPtr.(case x282 of
            Data.Int.IntPtr (x4intptr_t) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Data.Int.IntPtrPrelude.IntegerData.Int.IntPtr =
        λx288Prelude.Integer.(case x288 of
            Prelude.Integer (x4intmax_t) →
                case <(intptr_t) x4intptr_t> of
                    x6intptr_t → Data.Int.IntPtr x6;;);
    Instance@.iPrelude.fromInt.Data.Int.IntPtrPrelude.IntData.Int.IntPtr =
        λx294Prelude.Int.(case x294 of
            Prelude.Int (x4int) →
                case <(intptr_t) x4intptr_t> of
                    x6intptr_t → Data.Int.IntPtr x6;;);
    Instance@.iPrelude.toInteger.Data.Int.IntMaxData.Int.IntMaxPrelude.Integer =
        λx300Data.Int.IntMax.(case x300 of
            Data.Int.IntMax (x4intmax_t) →
                Prelude.Integer x4;);
    Instance@.iPrelude.fromInteger.Data.Int.IntMaxPrelude.IntegerData.Int.IntMax =
        λx306Prelude.Integer.(case x306 of
            Prelude.Integer (x4intmax_t) →
                Data.Int.IntMax x4;);
    Instance@.iPrelude.fromInt.Data.Int.IntMaxPrelude.IntData.Int.IntMax =
        λx312Prelude.Int.(case x312 of
            Prelude.Int (x4int) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Data.Int.IntMax x6;;);
    Instance@.iPrelude.toInteger.Data.Int.Int64Data.Int.Int64Prelude.Integer =
        λx318Data.Int.Int64.(case x318 of
            Data.Int.Int64 (x4int64_t) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Data.Int.Int64Prelude.IntegerData.Int.Int64 =
        λx324Prelude.Integer.(case x324 of
            Prelude.Integer (x4intmax_t) →
                case <(int64_t) x4int64_t> of
                    x6int64_t → Data.Int.Int64 x6;;);
    Instance@.iPrelude.fromInt.Data.Int.Int64Prelude.IntData.Int.Int64 =
        λx330Prelude.Int.(case x330 of
            Prelude.Int (x4int) →
                case <(int64_t) x4int64_t> of
                    x6int64_t → Data.Int.Int64 x6;;);
    Instance@.iPrelude.toInteger.Data.Int.Int32Data.Int.Int32Prelude.Integer =
        λx336Data.Int.Int32.(case x336 of
            Data.Int.Int32 (x4int32_t) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Data.Int.Int32Prelude.IntegerData.Int.Int32 =
        λx342Prelude.Integer.(case x342 of
            Prelude.Integer (x4intmax_t) →
                case <(int32_t) x4int32_t> of
                    x6int32_t → Data.Int.Int32 x6;;);
    Instance@.iPrelude.fromInt.Data.Int.Int32Prelude.IntData.Int.Int32 =
        λx348Prelude.Int.(case x348 of
            Prelude.Int (x4int) →
                case <(int32_t) x4int32_t> of
                    x6int32_t → Data.Int.Int32 x6;;);
    Instance@.iPrelude.toInteger.Data.Int.Int16Data.Int.Int16Prelude.Integer =
        λx354Data.Int.Int16.(case x354 of
            Data.Int.Int16 (x4int16_t) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Data.Int.Int16Prelude.IntegerData.Int.Int16 =
        λx360Prelude.Integer.(case x360 of
            Prelude.Integer (x4intmax_t) →
                case <(int16_t) x4int16_t> of
                    x6int16_t → Data.Int.Int16 x6;;);
    Instance@.iPrelude.fromInt.Data.Int.Int16Prelude.IntData.Int.Int16 =
        λx366Prelude.Int.(case x366 of
            Prelude.Int (x4int) →
                case <(int16_t) x4int16_t> of
                    x6int16_t → Data.Int.Int16 x6;;);
    Instance@.iPrelude.toInteger.Data.Int.Int8Data.Int.Int8Prelude.Integer =
        λx372Data.Int.Int8.(case x372 of
            Data.Int.Int8 (x4int8_t) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Data.Int.Int8Prelude.IntegerData.Int.Int8 =
        λx378Prelude.Integer.(case x378 of
            Prelude.Integer (x4intmax_t) →
                case <(int8_t) x4int8_t> of
                    x6int8_t → Data.Int.Int8 x6;;);
    Instance@.iPrelude.fromInt.Data.Int.Int8Prelude.IntData.Int.Int8 =
        λx384Prelude.Int.(case x384 of
            Prelude.Int (x4int) →
                case <(int8_t) x4int8_t> of
                    x6int8_t → Data.Int.Int8 x6;;);
    Instance@.iPrelude.fromInt.Prelude.IntegerPrelude.IntPrelude.Integer =
        λx402Prelude.Int.(case x402 of
            Prelude.Int (x4int) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.toInteger.Prelude.IntPrelude.IntPrelude.Integer =
        λx408Prelude.Int.(case x408 of
            Prelude.Int (x4int) →
                case <(intmax_t) x4intmax_t> of
                    x6intmax_t → Prelude.Integer x6;;);
    Instance@.iPrelude.fromInteger.Prelude.IntPrelude.IntegerPrelude.Int =
        λx414Prelude.Integer.(case x414 of
            Prelude.Integer (x4intmax_t) →
                case <(int) x4int> of
                    x6int → Prelude.Int x6;;);
    Instance@.iPrelude.fromInteger.Ratio.RatioChar.v1598.Prelude.IntegerRatio.Ratio Char.v1598 =
        Λx800.λRatio.118_xPrelude.Integer.(let
            x806x800 =
                Prelude.fromInteger x800 Ratio.118_x;
            x804x800 =
                Prelude.fromInt x800 (Prelude.Int 1);
            in Ratio.:% x806 x804);
    Instance@.iPrelude.>>=.Prelude.MaybeChar.v2517.Char.v2516.Prelude.Maybe Char.v2517(Char.v2517Prelude.Maybe Char.v2516)Prelude.Maybe Char.v2516 =
        Λx454.Λx456.λx458Prelude.Maybe x454.λx460x454Prelude.Maybe x456.(case x458 of
            Prelude.Just (x462x454) →
                x460 x462;
            Prelude.Nothing →
                Prelude.Nothing;);
    Instance@.iPrelude.>>=.Jhc.IO.IOChar.v2543.Char.v2526.Jhc.IO.IO Char.v2543(Char.v2543Jhc.IO.IO Char.v2526)Jhc.IO.IO Char.v2526 =
        Λx470.Λx472.λx474Jhc.IO.IO x470.λx476x470Jhc.IO.IO x472.λx32Jhc.IO.World__.(case x474 x32 of
            Jhc.IO.FailIO (x480Jhc.IO.World__) (x26Prelude.IOError.IOError) →
                Jhc.IO.FailIO x480 x26;
            Jhc.IO.JustIO (x484Jhc.IO.World__) (x486x470) →
                x476 x486 x484;);
    Instance@.iPrelude.>>.Jhc.IO.IOChar.v2567.Char.v2554.Jhc.IO.IO Char.v2567Jhc.IO.IO Char.v2554Jhc.IO.IO Char.v2554 =
        Λx494.Λx496.λx498Jhc.IO.IO x494.λx500Jhc.IO.IO x496.λx502Jhc.IO.World__.(case x498 x502 of
            Jhc.IO.FailIO (x504Jhc.IO.World__) (x506Prelude.IOError.IOError) →
                Jhc.IO.FailIO x504 x506;
            Jhc.IO.JustIO (x508Jhc.IO.World__) (x38x494) →
                x500 x508;);
    Prelude.IO.c_putwcharForeign.C.Types.CWcharJhc.IO.IO Prelude.() =
        λx4Foreign.C.Types.CWchar.(case x4 of
            Foreign.C.Types.CWchar (x516wchar_t) →
                λx518Jhc.IO.World__.(case <(void)putwchar(wchar_t) x518 x516Jhc.IO.World__> of
                    x520Jhc.IO.World__ → Jhc.IO.JustIO x520 Prelude.();););
    Prelude.IO.catchChar.v1032.Jhc.IO.IO Char.v1032(Prelude.IOError.IOErrorJhc.IO.IO Char.v1032)Jhc.IO.IO Char.v1032 =
        Λx526.λx528Jhc.IO.IO x526.λx530Prelude.IOError.IOErrorJhc.IO.IO x526.λx532Jhc.IO.World__.(case x528 x532 of
            Jhc.IO.FailIO (x534Jhc.IO.World__) (x20Prelude.IOError.IOError) →
                x530 x20 x534;
            Jhc.IO.JustIO (x538Jhc.IO.World__) (x540x526) →
                Jhc.IO.JustIO x538 x540;);
    Prelude.foldrChar.v297.Char.v302.(Char.v297Char.v302Char.v302)Char.v302[Char.v297]Char.v302 =
        Λx548.Λx550.λPrelude.1245_kx548x550x550.λPrelude.1246_zx550.λPrelude.1247_xs[x548].(let
            Prelude.1248_go[x548]x550 =
                λx560[x548].(case x560 of
                    (x562x548):(x564[x548]) → let
                            x566x550 =
                                Prelude.1248_go x564;
                            in Prelude.1245_k x562 x566;
                    Prelude.[] → Prelude.1246_z;);
            in Prelude.1248_go Prelude.1247_xs);
    Prelude.++Char.v756.[Char.v756][Char.v756][Char.v756] =
        Λx572.λx574[x572].λx576[x572].(case x574 of
            (x578x572):(x580[x572]) → let
                    x582[x572] =
                        Prelude.++ x572 x580 x576;
                    in x578:x582;
            Prelude.[] → x576;);
    Prelude.mapChar.v251.Char.v256.(Char.v251Char.v256)[Char.v251][Char.v256] =
        Λx590.Λx592.λPrelude.1058_fx590x592.λPrelude.1059_xs[x590].(let
            Prelude.1060_go[x590][x592] =
                λx600[x590].(case x600 of
                    (x602x590):(x604[x590]) → let
                            x608x592 = Prelude.1058_f x602;
                            x606[x592] =
                                Prelude.1060_go x604;
                            in x608:x606;
                    Prelude.[] → "";);
            in Prelude.1060_go Prelude.1059_xs);
    Prelude.concatMapChar.v769.Char.v771.(Char.v769[Char.v771])[Char.v769][Char.v771] =
        Λx638.Λx640.λPrelude.1107_fx638[x640].(let
            x650 = [x640];
            x648 = [x640][x640];
            x646[x640][x640][x640] =
                Prelude.++ x640;
            x652x638[x640][x640] =
                λx584x638.(let x586x650 =
                                    Prelude.1107_f x584;
                    in x646 x586);
            x644 = [x640];
            in Prelude.foldr x638 x644 x652 "");
    Instance@.iPrelude.>>=.Prelude.[]Char.v2509.Char.v2510.[Char.v2509](Char.v2509[Char.v2510])[Char.v2510] =
        Λx660.Λx662.λPrelude.881_xs[x660].λPrelude.882_fx660[x662].(let
            x588 = [x662];
            x594[x662][x662][x662] =
                Prelude.++ x662;
            x596x660[x662][x662] =
                λx610x660.(let x612x588 =
                                    Prelude.882_f x610;
                    in x594 x612);
            x598 = [x662];
            in Prelude.foldr x660 x598 x596 "" Prelude.881_xs);
    Prelude.returnΠChar.v41.Char.v42.Char.v42Char.v41 Char.v42 =
        λx674.(case x674 of
            Jhc.IO.IO →
                Instance@.iPrelude.return.Jhc.IO.IO;
            Prelude.Maybe →
                Instance@.iPrelude.return.Prelude.Maybe;
            Prelude.[] →
                Instance@.iPrelude.return.Prelude.[];
            x614 → <⊥:Bad: Prelude.return∷x676.x676x674 x676>;);
    Prelude.>>=ΠChar.v7.Char.v8.Char.v9.Char.v7 Char.v8(Char.v8Char.v7 Char.v9)Char.v7 Char.v9 =
        λx686.(case x686 of
            Jhc.IO.IO →
                Instance@.iPrelude.>>=.Jhc.IO.IO;
            Prelude.Maybe →
                Instance@.iPrelude.>>=.Prelude.Maybe;
            Prelude.[] →
                Instance@.iPrelude.>>=.Prelude.[];
            x616 → <⊥:Bad: Prelude.>>=∷x688.x690.x686 x688(x688x686 x690)x686 x690>;);
    Instance@.iPrelude.>>.defaultΠChar.v3370.Char.v3371.Char.v3372.Char.v3370 Char.v3371Char.v3370 Char.v3372Char.v3370 Char.v3372 =
        λx700.Λx702.Λx704.λPrelude.803_mx700 x702.λPrelude.804_kx700 x704.(let
            x710x702x700 x704 =
                λx714x702.Prelude.804_k;
            in case x700 of
                Jhc.IO.IO →
                    Instance@.iPrelude.>>=.Jhc.IO.IO x702 x704 Prelude.803_m x710;
                Prelude.Maybe →
                    Instance@.iPrelude.>>=.Prelude.Maybe x702 x704 Prelude.803_m x710;
                Prelude.[] →
                    Instance@.iPrelude.>>=.Prelude.[] x702 x704 Prelude.803_m x710;
                x624 → <⊥:Bad: Prelude.>>=∷x700 x704>;);
    Prelude.>>Πx718.x720.x722.x718 x720x718 x722x718 x722 =
        λx724.(case x724 of
            Jhc.IO.IO →
                Instance@.iPrelude.>>.Jhc.IO.IO;
            Prelude.Maybe → let x726 =
                                    Prelude.Maybe;
                    in Instance@.iPrelude.>>.default Prelude.Maybe;
            Prelude.[] → let x728 =
                                 Prelude.[];
                    in Instance@.iPrelude.>>.default Prelude.[];
            x626 → <⊥:Bad: Prelude.>>∷x730.x732.x724 x730x724 x732x724 x732>;);
    Prelude.sequence_ΠChar.v3360.Char.v3361.[Char.v3360 Char.v3361]Char.v3360 Prelude.() =
        λx740.Λx742.(let x750 =
                                   x740 x742;
                               x748 = x740 Prelude.();
                               x746x740 x742x740 Prelude.()x740 Prelude.() =
                                   case x740 of
                                       Jhc.IO.IO →
                                           Instance@.iPrelude.>>.Jhc.IO.IO x742 Prelude.();
                                       Prelude.Maybe →
                                           Instance@.iPrelude.>>.default Prelude.Maybe x742 Prelude.();
                                       Prelude.[] →
                                           Instance@.iPrelude.>>.default Prelude.[] x742 Prelude.();
                                       x636 → <⊥:Bad: Prelude.>>∷x740 x742x740 Prelude.()x740 Prelude.()>;;
                               x744x740 Prelude.() =
                                   case x740 of
                                       Jhc.IO.IO →
                                           λx654Jhc.IO.World__.Jhc.IO.JustIO x654 Prelude.();
                                       Prelude.Maybe →
                                           Prelude.Just Prelude.();
                                       Prelude.[] → [Prelude.()];
                                       x642 → <⊥:Bad: Prelude.return∷x740 Prelude.()>;;
            in Prelude.foldr x750 x748 x746 x744);
    Prelude.mapM_ΠChar.v3351.Char.v3353.Char.v3352.(Char.v3353Char.v3351 Char.v3352)[Char.v3353]Char.v3351 Prelude.() =
        λx760.Λx762.Λx764.λPrelude.853_fx762x760 x764.λPrelude.854_as[x762].(let
            x676 = x760 x764;
            x678 = x760 Prelude.();
            x680x760 x764x760 Prelude.()x760 Prelude.() =
                case x760 of
                    Jhc.IO.IO →
                        Instance@.iPrelude.>>.Jhc.IO.IO x764 Prelude.();
                    Prelude.Maybe →
                        Instance@.iPrelude.>>.default Prelude.Maybe x764 Prelude.();
                    Prelude.[] →
                        Instance@.iPrelude.>>.default Prelude.[] x764 Prelude.();
                    x684 → <⊥:Bad: Prelude.>>∷x760 x764x760 Prelude.()x760 Prelude.()>;;
            x682x760 Prelude.() =
                case x760 of
                    Jhc.IO.IO →
                        λx690Jhc.IO.World__.Jhc.IO.JustIO x690 Prelude.();
                    Prelude.Maybe →
                        Prelude.Just Prelude.();
                    Prelude.[] → [Prelude.()];
                    x688 → <⊥:Bad: Prelude.return∷x760 Prelude.()>;;
            x656[x762][x770] =
                λx658[x762].(case x658 of
                    (x666x762):(x668[x762]) → let
                            x670x770 = Prelude.853_f x666;
                            x672[x770] = x656 x668;
                            in x670:x672;
                    Prelude.[] → "";);
            x772[x760 x764] =
                x656 Prelude.854_as;
            x770 = x760 x764;
            in Prelude.foldr x676 x678 x680 x682 x772);
    Prelude.toIntegerChar.v147.Char.v147Prelude.Integer =
        Λx778.(case x778 of
            Data.Int.Int16 →
                Instance@.iPrelude.toInteger.Data.Int.Int16;
            Data.Int.Int32 →
                Instance@.iPrelude.toInteger.Data.Int.Int32;
            Data.Int.Int64 →
                Instance@.iPrelude.toInteger.Data.Int.Int64;
            Data.Int.Int8 →
                Instance@.iPrelude.toInteger.Data.Int.Int8;
            Data.Int.IntMax →
                Instance@.iPrelude.toInteger.Data.Int.IntMax;
            Data.Int.IntPtr →
                Instance@.iPrelude.toInteger.Data.Int.IntPtr;
            Data.Word.Word →
                Instance@.iPrelude.toInteger.Data.Word.Word;
            Data.Word.Word16 →
                Instance@.iPrelude.toInteger.Data.Word.Word16;
            Data.Word.Word32 →
                Instance@.iPrelude.toInteger.Data.Word.Word32;
            Data.Word.Word64 →
                Instance@.iPrelude.toInteger.Data.Word.Word64;
            Data.Word.Word8 →
                Instance@.iPrelude.toInteger.Data.Word.Word8;
            Data.Word.WordMax →
                Instance@.iPrelude.toInteger.Data.Word.WordMax;
            Data.Word.WordPtr →
                Instance@.iPrelude.toInteger.Data.Word.WordPtr;
            Foreign.C.Types.CChar →
                Instance@.iPrelude.toInteger.Foreign.C.Types.CChar;
            Foreign.C.Types.CInt →
                Instance@.iPrelude.toInteger.Foreign.C.Types.CInt;
            Foreign.C.Types.CShort →
                Instance@.iPrelude.toInteger.Foreign.C.Types.CShort;
            Foreign.C.Types.CSize →
                Instance@.iPrelude.toInteger.Foreign.C.Types.CSize;
            Foreign.C.Types.CUInt →
                Instance@.iPrelude.toInteger.Foreign.C.Types.CUInt;
            Foreign.C.Types.CWchar →
                Instance@.iPrelude.toInteger.Foreign.C.Types.CWchar;
            Foreign.C.Types.CWint →
                Instance@.iPrelude.toInteger.Foreign.C.Types.CWint;
            Prelude.Int →
                Instance@.iPrelude.toInteger.Prelude.Int;
            Prelude.Integer →
                λx694Prelude.Integer.x694;
            x692 → <⊥:Bad: Prelude.toInteger∷x778Prelude.Integer>;);
    Prelude.fromIntegralChar.v614.Char.v613.Char.v614Char.v613 =
        Λx830.Λx832.(let
            x836Prelude.Integerx832 =
                Prelude.fromInteger x832;
            x834x830Prelude.Integer =
                case x830 of
                    Data.Int.Int16 →
                        Instance@.iPrelude.toInteger.Data.Int.Int16;
                    Data.Int.Int32 →
                        Instance@.iPrelude.toInteger.Data.Int.Int32;
                    Data.Int.Int64 →
                        Instance@.iPrelude.toInteger.Data.Int.Int64;
                    Data.Int.Int8 →
                        Instance@.iPrelude.toInteger.Data.Int.Int8;
                    Data.Int.IntMax →
                        Instance@.iPrelude.toInteger.Data.Int.IntMax;
                    Data.Int.IntPtr →
                        Instance@.iPrelude.toInteger.Data.Int.IntPtr;
                    Data.Word.Word →
                        Instance@.iPrelude.toInteger.Data.Word.Word;
                    Data.Word.Word16 →
                        Instance@.iPrelude.toInteger.Data.Word.Word16;
                    Data.Word.Word32 →
                        Instance@.iPrelude.toInteger.Data.Word.Word32;
                    Data.Word.Word64 →
                        Instance@.iPrelude.toInteger.Data.Word.Word64;
                    Data.Word.Word8 →
                        Instance@.iPrelude.toInteger.Data.Word.Word8;
                    Data.Word.WordMax →
                        Instance@.iPrelude.toInteger.Data.Word.WordMax;
                    Data.Word.WordPtr →
                        Instance@.iPrelude.toInteger.Data.Word.WordPtr;
                    Foreign.C.Types.CChar →
                        Instance@.iPrelude.toInteger.Foreign.C.Types.CChar;
                    Foreign.C.Types.CInt →
                        Instance@.iPrelude.toInteger.Foreign.C.Types.CInt;
                    Foreign.C.Types.CShort →
                        Instance@.iPrelude.toInteger.Foreign.C.Types.CShort;
                    Foreign.C.Types.CSize →
                        Instance@.iPrelude.toInteger.Foreign.C.Types.CSize;
                    Foreign.C.Types.CUInt →
                        Instance@.iPrelude.toInteger.Foreign.C.Types.CUInt;
                    Foreign.C.Types.CWchar →
                        Instance@.iPrelude.toInteger.Foreign.C.Types.CWchar;
                    Foreign.C.Types.CWint →
                        Instance@.iPrelude.toInteger.Foreign.C.Types.CWint;
                    Prelude.Int →
                        Instance@.iPrelude.toInteger.Prelude.Int;
                    Prelude.Integer →
                        λx698Prelude.Integer.x698;
                    x696 → <⊥:Bad: Prelude.toInteger∷x830Prelude.Integer>;;
            in λx706x830.(let
                x708Prelude.Integer =
                    x834 x706; in x836 x708));
    Prelude.fromIntChar.v274.Prelude.IntChar.v274 =
        Λx808.(case x808 of
            Data.Int.Int16 →
                Instance@.iPrelude.fromInt.Data.Int.Int16;
            Data.Int.Int32 →
                Instance@.iPrelude.fromInt.Data.Int.Int32;
            Data.Int.Int64 →
                Instance@.iPrelude.fromInt.Data.Int.Int64;
            Data.Int.Int8 →
                Instance@.iPrelude.fromInt.Data.Int.Int8;
            Data.Int.IntMax →
                Instance@.iPrelude.fromInt.Data.Int.IntMax;
            Data.Int.IntPtr →
                Instance@.iPrelude.fromInt.Data.Int.IntPtr;
            Data.Word.Word →
                Instance@.iPrelude.fromInt.Data.Word.Word;
            Data.Word.Word16 →
                Instance@.iPrelude.fromInt.Data.Word.Word16;
            Data.Word.Word32 →
                Instance@.iPrelude.fromInt.Data.Word.Word32;
            Data.Word.Word64 →
                Instance@.iPrelude.fromInt.Data.Word.Word64;
            Data.Word.Word8 →
                Instance@.iPrelude.fromInt.Data.Word.Word8;
            Data.Word.WordMax →
                Instance@.iPrelude.fromInt.Data.Word.WordMax;
            Data.Word.WordPtr →
                Instance@.iPrelude.fromInt.Data.Word.WordPtr;
            Foreign.C.Types.CChar →
                Instance@.iPrelude.fromInt.Foreign.C.Types.CChar;
            Foreign.C.Types.CInt →
                Instance@.iPrelude.fromInt.Foreign.C.Types.CInt;
            Foreign.C.Types.CShort →
                Instance@.iPrelude.fromInt.Foreign.C.Types.CShort;
            Foreign.C.Types.CSize →
                Instance@.iPrelude.fromInt.Foreign.C.Types.CSize;
            Foreign.C.Types.CUInt →
                Instance@.iPrelude.fromInt.Foreign.C.Types.CUInt;
            Foreign.C.Types.CWchar →
                Instance@.iPrelude.fromInt.Foreign.C.Types.CWchar;
            Foreign.C.Types.CWint →
                Instance@.iPrelude.fromInt.Foreign.C.Types.CWint;
            Prelude.Double →
                Instance@.iPrelude.fromInt.Prelude.Double;
            Prelude.Float →
                Instance@.iPrelude.fromInt.Prelude.Float;
            Prelude.Int →
                λx716Prelude.Int.x716;
            Prelude.Integer →
                Instance@.iPrelude.fromInt.Prelude.Integer;
            Ratio.Ratio (x810) → let
                    x812 = Ratio.Ratio x810;
                    in Instance@.iPrelude.fromInt.default x812;
            x712 → <⊥:Bad: Prelude.fromInt∷Prelude.Intx808>;);
    Prelude.fromIntegerChar.v279.Prelude.IntegerChar.v279 =
        Λx796.(case x796 of
            Data.Int.Int16 →
                Instance@.iPrelude.fromInteger.Data.Int.Int16;
            Data.Int.Int32 →
                Instance@.iPrelude.fromInteger.Data.Int.Int32;
            Data.Int.Int64 →
                Instance@.iPrelude.fromInteger.Data.Int.Int64;
            Data.Int.Int8 →
                Instance@.iPrelude.fromInteger.Data.Int.Int8;
            Data.Int.IntMax →
                Instance@.iPrelude.fromInteger.Data.Int.IntMax;
            Data.Int.IntPtr →
                Instance@.iPrelude.fromInteger.Data.Int.IntPtr;
            Data.Word.Word →
                Instance@.iPrelude.fromInteger.Data.Word.Word;
            Data.Word.Word16 →
                Instance@.iPrelude.fromInteger.Data.Word.Word16;
            Data.Word.Word32 →
                Instance@.iPrelude.fromInteger.Data.Word.Word32;
            Data.Word.Word64 →
                Instance@.iPrelude.fromInteger.Data.Word.Word64;
            Data.Word.Word8 →
                Instance@.iPrelude.fromInteger.Data.Word.Word8;
            Data.Word.WordMax →
                Instance@.iPrelude.fromInteger.Data.Word.WordMax;
            Data.Word.WordPtr →
                Instance@.iPrelude.fromInteger.Data.Word.WordPtr;
            Foreign.C.Types.CChar →
                Instance@.iPrelude.fromInteger.Foreign.C.Types.CChar;
            Foreign.C.Types.CInt →
                Instance@.iPrelude.fromInteger.Foreign.C.Types.CInt;
            Foreign.C.Types.CShort →
                Instance@.iPrelude.fromInteger.Foreign.C.Types.CShort;
            Foreign.C.Types.CSize →
                Instance@.iPrelude.fromInteger.Foreign.C.Types.CSize;
            Foreign.C.Types.CUInt →
                Instance@.iPrelude.fromInteger.Foreign.C.Types.CUInt;
            Foreign.C.Types.CWchar →
                Instance@.iPrelude.fromInteger.Foreign.C.Types.CWchar;
            Foreign.C.Types.CWint →
                Instance@.iPrelude.fromInteger.Foreign.C.Types.CWint;
            Prelude.Double →
                Instance@.iPrelude.fromInteger.Prelude.Double;
            Prelude.Float →
                Instance@.iPrelude.fromInteger.Prelude.Float;
            Prelude.Int →
                Instance@.iPrelude.fromInteger.Prelude.Int;
            Prelude.Integer →
                λx720Prelude.Integer.x720;
            Ratio.Ratio (Ratio.74_a) →
                Instance@.iPrelude.fromInteger.Ratio.Ratio Ratio.74_a;
            x718 → <⊥:Bad: Prelude.fromInteger∷Prelude.Integerx796>;);
    Char.ordPrelude.CharPrelude.Int =
        λx840Prelude.Char.(case x840 of
            Prelude.Char (x842uint32_t) →
                case <(int) x842int> of
                    x844int → Prelude.Int x844;;);
    Prelude.IO.putCharPrelude.CharJhc.IO.IO Prelude.() =
        λPrelude.IO.183_cPrelude.Char.(let
            x752Prelude.Integer =
                Instance@.iPrelude.toInteger.Prelude.Int x850;
            x738Prelude.IntPrelude.Integer =
                Instance@.iPrelude.toInteger.Prelude.Int;
            x736Prelude.IntegerForeign.C.Types.CWchar =
                Instance@.iPrelude.fromInteger.Foreign.C.Types.CWchar;
            x852Foreign.C.Types.CWchar =
                Instance@.iPrelude.fromInteger.Foreign.C.Types.CWchar x752;
            x850Prelude.Int =
                case Prelude.IO.183_c of
                    Prelude.Char (x732uint32_t) →
                        case <(int) x732int> of
                            x734int → Prelude.Int x734;;;
            in case x852 of
                Foreign.C.Types.CWchar (x756wchar_t) →
                    λx758Jhc.IO.World__.(case <(void)putwchar(wchar_t) x758 x756Jhc.IO.World__> of
                        x766Jhc.IO.World__ → Jhc.IO.JustIO x766 Prelude.();););
    Prelude.IO.putStr[Prelude.Char]Jhc.IO.IO Prelude.() =
        λPrelude.IO.51_s[Prelude.Char].(let
            x768 = Jhc.IO.IO Prelude.();
            x774[Jhc.IO.IO Prelude.()] =
                x786 Prelude.IO.51_s;
            x776Jhc.IO.IO Prelude.() =
                λx788Jhc.IO.World__.Jhc.IO.JustIO x788 Prelude.();
            x780Jhc.IO.IO Prelude.()Jhc.IO.IO Prelude.()Jhc.IO.IO Prelude.() =
                Instance@.iPrelude.>>.Jhc.IO.IO Prelude.() Prelude.();
            x782 = Jhc.IO.IO Prelude.();
            x784 = Jhc.IO.IO Prelude.();
            x786[Prelude.Char][x770] =
                λx790[Prelude.Char].(case x790 of
                    (x794Prelude.Char):(x798[Prelude.Char]) →
                        let
                            x802[Jhc.IO.IO Prelude.()] =
                                x786 x798;
                            x816Jhc.IO.IO Prelude.() =
                                Prelude.IO.putChar x794;
                            in x816:x802;
                    Prelude.[] → "";);
            in Prelude.foldr (Jhc.IO.IO Prelude.()) (Jhc.IO.IO Prelude.()) x780 x776 x774);
    Prelude.IO.putStrLn[Prelude.Char]Jhc.IO.IO Prelude.() =
        λPrelude.IO.55_s[Prelude.Char].(let
            x864Jhc.IO.IO Prelude.() =
                Prelude.IO.putStr Prelude.IO.55_s;
            x862Jhc.IO.IO Prelude.() =
                Prelude.IO.putStr "\n";
            in Instance@.iPrelude.>>.Jhc.IO.IO Prelude.() Prelude.() x864 x862);
    x874Jhc.IO.IO Prelude.() =
        λx876Jhc.IO.World__.Jhc.IO.JustIO x876 Prelude.();
    x896Jhc.IO.IO Prelude.() =
        λx818Jhc.IO.World__.(case Main.main x818 of
            Jhc.IO.FailIO (x826Jhc.IO.World__) (x828Prelude.IOError.IOError) →
                x878 x828 x826;
            Jhc.IO.JustIO (x838Jhc.IO.World__) (x846Prelude.()) →
                Jhc.IO.JustIO x838 x846;);
    x878Prelude.IOError.IOErrorJhc.IO.IO Prelude.() =
        λx882Prelude.IOError.IOError.(let
            x888Prelude.() =
                <⊥:Prelude.error: runMain∷Prelude.()>;
            x890Jhc.IO.IO Prelude.() =
                λx892Jhc.IO.World__.Jhc.IO.JustIO x892 x888;
            x886Jhc.IO.IO Prelude.() =
                Prelude.IO.putStrLn x882;
            x894Jhc.IO.IO Prelude.() =
                Instance@.iPrelude.>>.Jhc.IO.IO Prelude.() Prelude.() x886 x890;
            x884Jhc.IO.IO Prelude.() =
                Prelude.IO.putStr "\nError..\n";
            in Instance@.iPrelude.>>.Jhc.IO.IO Prelude.() Prelude.() x884 x894);
    in Instance@.iPrelude.>>.Jhc.IO.IO Prelude.() Prelude.() x896 x874
>>> internal error:
Checking Let:  (Prelude.IO.putStr)  =  (λPrelude.IO.51_s[Prelude.Char].(let
    x768 = Jhc.IO.IO (Prelude.());
    x774[(Jhc.IO.IO) (Prelude.())] =
        (x786[Prelude.Char][x770]) (Prelude.IO.51_s[Prelude.Char]);
    x776(Jhc.IO.IO) (Prelude.()) =
        λx788(Jhc.IO.World__).(Jhc.IO.JustIO (x788(Jhc.IO.World__)) (Prelude.()(Prelude.()))(Jhc.IO.IOResult (Prelude.())));
    x780(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.()) =
        (Instance@.iPrelude.>>.Jhc.IO.IOChar.v2567.Char.v2554.(Jhc.IO.IO (Char.v2567))(Jhc.IO.IO (Char.v2554))(Jhc.IO.IO (Char.v2554))) (Prelude.()) (Prelude.());
    x782 = Jhc.IO.IO (Prelude.());
    x784 = Jhc.IO.IO (Prelude.());
    x786[Prelude.Char][x770] =
        λx790[Prelude.Char].(case x790[Prelude.Char] of
            (x794(Prelude.Char)):(x798[Prelude.Char]) → let
                    x802[Jhc.IO.IO (Prelude.())] =
                        (x786[Prelude.Char][x770]) (x798[Prelude.Char]);
                    x816(Jhc.IO.IO (Prelude.())) =
                        (Prelude.IO.putChar(Prelude.Char)(Jhc.IO.IO (Prelude.()))) (x794(Prelude.Char));
                    in (x816(Jhc.IO.IO (Prelude.()))):(x802[Jhc.IO.IO (Prelude.())]);
            Prelude.[][Prelude.Char] → "";);
    in (Prelude.foldrChar.v297.Char.v302.((Char.v297)(Char.v302)(Char.v302))(Char.v302)[Char.v297](Char.v302)) (Jhc.IO.IO (Prelude.())) (Jhc.IO.IO (Prelude.())) (x780(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.())) (x776(Jhc.IO.IO) (Prelude.())) (x774[(Jhc.IO.IO) (Prelude.())])))
fceq: (λPrelude.IO.51_s[Prelude.Char].(let x768 =
                                                  Jhc.IO.IO (Prelude.());
                                              x774[(Jhc.IO.IO) (Prelude.())] =
                                                  (x786[Prelude.Char][x770]) (Prelude.IO.51_s[Prelude.Char]);
                                              x776(Jhc.IO.IO) (Prelude.()) =
                                                  λx788(Jhc.IO.World__).(Jhc.IO.JustIO (x788(Jhc.IO.World__)) (Prelude.()(Prelude.()))(Jhc.IO.IOResult (Prelude.())));
                                              x780(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.()) =
                                                  (Instance@.iPrelude.>>.Jhc.IO.IOChar.v2567.Char.v2554.(Jhc.IO.IO (Char.v2567))(Jhc.IO.IO (Char.v2554))(Jhc.IO.IO (Char.v2554))) (Prelude.()) (Prelude.());
                                              x782 =
                                                  Jhc.IO.IO (Prelude.());
                                              x784 =
                                                  Jhc.IO.IO (Prelude.());
                                              x786[Prelude.Char][x770] =
                                                  λx790[Prelude.Char].(case x790[Prelude.Char] of
                                                      (x794(Prelude.Char)):(x798[Prelude.Char]) →
                                                          let
                                                              x802[Jhc.IO.IO (Prelude.())] =
                                                                  (x786[Prelude.Char][x770]) (x798[Prelude.Char]);
                                                              x816(Jhc.IO.IO (Prelude.())) =
                                                                  (Prelude.IO.putChar(Prelude.Char)(Jhc.IO.IO (Prelude.()))) (x794(Prelude.Char));
                                                              in (x816(Jhc.IO.IO (Prelude.()))):(x802[Jhc.IO.IO (Prelude.())]);
                                                      Prelude.[][Prelude.Char] →
                                                          ""    ;);
    in (Prelude.foldrChar.v297.Char.v302.((Char.v297)(Char.v302)(Char.v302))(Char.v302)[Char.v297](Char.v302)) (Jhc.IO.IO (Prelude.())) (Jhc.IO.IO (Prelude.())) (x780(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.())) (x776(Jhc.IO.IO) (Prelude.())) (x774[(Jhc.IO.IO) (Prelude.())]))) ([Prelude.Char](Jhc.IO.IO (Prelude.())))
fullCheck: λPrelude.IO.51_s[Prelude.Char].(let x768 =
                                                      Jhc.IO.IO (Prelude.());
                                                  x774[(Jhc.IO.IO) (Prelude.())] =
                                                      (x786[Prelude.Char][x770]) (Prelude.IO.51_s[Prelude.Char]);
                                                  x776(Jhc.IO.IO) (Prelude.()) =
                                                      λx788(Jhc.IO.World__).(Jhc.IO.JustIO (x788(Jhc.IO.World__)) (Prelude.()(Prelude.()))(Jhc.IO.IOResult (Prelude.())));
                                                  x780(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.()) =
                                                      (Instance@.iPrelude.>>.Jhc.IO.IOChar.v2567.Char.v2554.(Jhc.IO.IO (Char.v2567))(Jhc.IO.IO (Char.v2554))(Jhc.IO.IO (Char.v2554))) (Prelude.()) (Prelude.());
                                                  x782 =
                                                      Jhc.IO.IO (Prelude.());
                                                  x784 =
                                                      Jhc.IO.IO (Prelude.());
                                                  x786[Prelude.Char][x770] =
                                                      λx790[Prelude.Char].(case x790[Prelude.Char] of
                                                          (x794(Prelude.Char)):(x798[Prelude.Char]) →
                                                              let
                                                                  x802[Jhc.IO.IO (Prelude.())] =
                                                                      (x786[Prelude.Char][x770]) (x798[Prelude.Char]);
                                                                  x816(Jhc.IO.IO (Prelude.())) =
                                                                      (Prelude.IO.putChar(Prelude.Char)(Jhc.IO.IO (Prelude.()))) (x794(Prelude.Char));
                                                                  in (x816(Jhc.IO.IO (Prelude.()))):(x802[Jhc.IO.IO (Prelude.())]);
                                                          Prelude.[][Prelude.Char] →
                                                              ""    ;);
    in (Prelude.foldrChar.v297.Char.v302.((Char.v297)(Char.v302)(Char.v302))(Char.v302)[Char.v297](Char.v302)) (Jhc.IO.IO (Prelude.())) (Jhc.IO.IO (Prelude.())) (x780(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.())) (x776(Jhc.IO.IO) (Prelude.())) (x774[(Jhc.IO.IO) (Prelude.())]))
fullCheck': let x768 = Jhc.IO.IO (Prelude.());
                x774[(Jhc.IO.IO) (Prelude.())] =
                    (x786[Prelude.Char][x770]) (Prelude.IO.51_s[Prelude.Char]);
                x776(Jhc.IO.IO) (Prelude.()) =
                    λx788(Jhc.IO.World__).(Jhc.IO.JustIO (x788(Jhc.IO.World__)) (Prelude.()(Prelude.()))(Jhc.IO.IOResult (Prelude.())));
                x780(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.()) =
                    (Instance@.iPrelude.>>.Jhc.IO.IOChar.v2567.Char.v2554.(Jhc.IO.IO (Char.v2567))(Jhc.IO.IO (Char.v2554))(Jhc.IO.IO (Char.v2554))) (Prelude.()) (Prelude.());
                x782 = Jhc.IO.IO (Prelude.());
                x784 = Jhc.IO.IO (Prelude.());
                x786[Prelude.Char][x770] =
                    λx790[Prelude.Char].(case x790[Prelude.Char] of
                        (x794(Prelude.Char)):(x798[Prelude.Char]) → let
                                x802[Jhc.IO.IO (Prelude.())] =
                                    (x786[Prelude.Char][x770]) (x798[Prelude.Char]);
                                x816(Jhc.IO.IO (Prelude.())) =
                                    (Prelude.IO.putChar(Prelude.Char)(Jhc.IO.IO (Prelude.()))) (x794(Prelude.Char));
                                in (x816(Jhc.IO.IO (Prelude.()))):(x802[Jhc.IO.IO (Prelude.())]);
                        Prelude.[][Prelude.Char] → "";);
    in (Prelude.foldrChar.v297.Char.v302.((Char.v297)(Char.v302)(Char.v302))(Char.v302)[Char.v297](Char.v302)) (Jhc.IO.IO (Prelude.())) (Jhc.IO.IO (Prelude.())) (x780(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.())) (x776(Jhc.IO.IO) (Prelude.())) (x774[(Jhc.IO.IO) (Prelude.())])
fullCheck: let x768 = Jhc.IO.IO (Prelude.());
               x774[(Jhc.IO.IO) (Prelude.())] =
                   (x786[Prelude.Char][x770]) (Prelude.IO.51_s[Prelude.Char]);
               x776(Jhc.IO.IO) (Prelude.()) =
                   λx788(Jhc.IO.World__).(Jhc.IO.JustIO (x788(Jhc.IO.World__)) (Prelude.()(Prelude.()))(Jhc.IO.IOResult (Prelude.())));
               x780(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.()) =
                   (Instance@.iPrelude.>>.Jhc.IO.IOChar.v2567.Char.v2554.(Jhc.IO.IO (Char.v2567))(Jhc.IO.IO (Char.v2554))(Jhc.IO.IO (Char.v2554))) (Prelude.()) (Prelude.());
               x782 = Jhc.IO.IO (Prelude.());
               x784 = Jhc.IO.IO (Prelude.());
               x786[Prelude.Char][x770] =
                   λx790[Prelude.Char].(case x790[Prelude.Char] of
                       (x794(Prelude.Char)):(x798[Prelude.Char]) → let
                               x802[Jhc.IO.IO (Prelude.())] =
                                   (x786[Prelude.Char][x770]) (x798[Prelude.Char]);
                               x816(Jhc.IO.IO (Prelude.())) =
                                   (Prelude.IO.putChar(Prelude.Char)(Jhc.IO.IO (Prelude.()))) (x794(Prelude.Char));
                               in (x816(Jhc.IO.IO (Prelude.()))):(x802[Jhc.IO.IO (Prelude.())]);
                       Prelude.[][Prelude.Char] → "";);
    in (Prelude.foldrChar.v297.Char.v302.((Char.v297)(Char.v302)(Char.v302))(Char.v302)[Char.v297](Char.v302)) (Jhc.IO.IO (Prelude.())) (Jhc.IO.IO (Prelude.())) (x780(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.())(Jhc.IO.IO) (Prelude.())) (x776(Jhc.IO.IO) (Prelude.())) (x774[(Jhc.IO.IO) (Prelude.())])
Checking Let:  (x774)  =  ((x786[Prelude.Char][x770]) (Prelude.IO.51_s[Prelude.Char]))
fceq: ((x786[Prelude.Char][x770]) (Prelude.IO.51_s[Prelude.Char])) ([(Jhc.IO.IO) (Prelude.())])

eq: Types don't match:Types don't match:Types don't match [x770]
                                                          [Jhc.IO.IO (Prelude.())]

Type Error in E